common.scss 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. /* ==================
  2. 初始化
  3. ==================== */
  4. body {
  5. background-color: #f5f5f5;
  6. font-size: 28rpx;
  7. color: #333;
  8. line-height: 1.6;
  9. font-family: "mp-quote", -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;
  10. }
  11. view,scroll-view,swiper,swiper-item,cover-view,cover-image,icon,text,rich-text,progress,button,checkbox,form,input,label,radio,slider,switch,textarea,navigator,audio,camera,image,video{box-sizing: border-box;}
  12. switch { transform: translateX(16rpx) scale(0.9); }
  13. /**
  14. * 页面公共样式
  15. **/
  16. input{height: inherit;}
  17. uni-button, button {font-weight: normal;}
  18. uni-button.no-border:before, uni-button.no-border:after, button.no-border:before, button.no-border:after {border: 0 none;}
  19. button{border: 0 none;}
  20. button.btn {background-color: transparent;padding-left: 0;padding-right: 0; height: inherit; line-height:inherit;}
  21. view[class*='-area']{ }
  22. view[class*='-round-area']{ border-radius: 20rpx; }
  23. .safe-area-inset-bottom {padding-bottom: 0; padding-bottom: constant(safe-area-inset-bottom);padding-bottom: env(safe-area-inset-bottom);}
  24. .use-page { min-height: 100%; width: 100%; background: #fff; } .use-hover-class { opacity: 0.6; }
  25. /**
  26. * 组件公共样式
  27. **/
  28. .price{font-size: 28rpx; color: #ff6a6c; line-height: 1; font-weight: 580;}.m-price{font-size: 22rpx;text-decoration: line-through;color: #909399;margin-left: 20rpx;}
  29. /*.price::before{ content: '¥'; font-size: 24rpx; } .m-price::before{ content: '¥'; font-size: 24rpx; }*/
  30. .price::before{ font-size: 24rpx; } .m-price::before{ font-size: 24rpx; }
  31. .price::after{ content: attr(data-decimal); font-size: 24rpx; }
  32. .price-add::before { content: '+'; font-weight: 600; }
  33. .price-sub::before { content: '-'; font-weight: 600; }
  34. .badge{ position: absolute; top: 0; right: 0;background: #ff6a6c; color: #fff;font-size: 12px; line-height: 1;display: inline-block;padding: 3px 6px;border-radius: 50px;font-weight: normal !important;}
  35. .badge-small{transform: scale(0.8);transform-origin: center center;}
  36. .dn{ display: none !important; }
  37. .diblock{ display: inline-block; }
  38. /* flex 布局 */
  39. .dflex{display: flex; -webkit-align-items: center; align-items: center;}
  40. .dflex-s{display: flex; -webkit-align-items: flex-start; align-items: flex-start;}
  41. .dflex-e{display: flex; justify-content: flex-end; align-items: baseline;}
  42. .dflex-c{display: flex; justify-content: center; align-items: center;}
  43. .dflex-a{display: flex; justify-content: space-around; align-items: center;}
  44. .dflex-b{display: flex; justify-content: space-between; align-items: center;}
  45. .dflex-flow-c{flex-flow: column;}
  46. .dflex-wrap-w{-ms-flex-wrap: wrap; -webkit-flex-wrap: wrap; flex-wrap: wrap;}
  47. .flex1{flex: 1;}
  48. .box-sizing-b { box-sizing: border-box; } .box-sizing-c { box-sizing: content-box; }
  49. /* 间隔槽 */
  50. .gap{display: block;width: 100%;height: 20rpx;background: #f5f5f5;}
  51. /* 垂直线 */
  52. .vertical-line{ border-left:1px solid #ededed; height: 30%; position:absolute; top: 50%; transform: translate(0, -50%); right: 0; }
  53. /* 下边框线 */
  54. .border-bottom{border-bottom: 1px solid #f5f5f5;}
  55. /* 文字超出省略 */
  56. .clamp{overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: block;width: 100%;}
  57. .clamp-2{display: -webkit-box;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;white-space: normal !important;-webkit-line-clamp: 2;-webkit-box-orient: vertical; line-height: 36rpx;}
  58. .ws-np {white-space: nowrap;}
  59. .line-height-1 {line-height: 1;}
  60. /* 文字对齐 */
  61. .tac{text-align: center;}.tar{text-align: right;}.tal{text-align: left;}
  62. /* 相对定位|绝对定位|固定定位 */
  63. .fixed{position: fixed;z-index: 1;}
  64. .pos-r{position: relative;}.pos-f{position: fixed;z-index: 1;}.pos-a{position: absolute;}
  65. .pos-t-c { top: 50%; transform: translateY(-50%); }
  66. .pos-l-c { left: 50%; transform: translateX(-50%); }
  67. .pos-tl-c { top: 50%; left: 50%; transform: translate(-50%, -50%); }
  68. .pos-top {top: 0} .pos-right {right: 0} .pos-bottom {bottom: 0} .pos-left {left: 0} .pos-full{top:0; right: 0; bottom: 0; left: 0;}
  69. /* 圆角 */
  70. .border-radius-big{border-radius: 100rpx;}.border-radius-lg{border-radius: 50rpx;}.border-radius{border-radius: 20rpx;}.border-radius-xs{border-radius: 6rpx;}.border-radius-sm{border-radius: 10rpx;}.border-radius-c{border-radius: 50%;}
  71. view[class*='border-radius']{ overflow: hidden;}
  72. .fixed-top { width: 100rpx;height: 100rpx;right: 30rpx;bottom: 30rpx;background: #fff;box-shadow: 0px 0px 7px 3px #f0f0f0;border-radius: 50%;display: flex;align-items: center;justify-content: center;position: fixed;z-index: 9;}
  73. .fixed-top .iconfont {font-size: 44rpx;}
  74. /* 底部操作区 */
  75. .fixed-oper-area {position: fixed;left: 0;bottom: 0;width: 100%;height: 100rpx;z-index: 998;font-size: 36rpx;
  76. box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1);
  77. }
  78. /* 宽高 */
  79. .wh-full{width: 100%;height: 100%;}.h-full{height: 100%;}.w-full{width: 100%;}
  80. /* 背景色 */
  81. .bg-main { background: #fff; } .bg-drak { background: #f5f5f5; } .bg-base{ background-color: #ff6a6c; color: #fff; } .bg-blue{ background-color: #19c6e0; color: #fff; }
  82. .bg-warn{background: #ffbc49; color: #333;} .bg-disabled {background: #f4f4f4 !important; color: #bbb !important;}
  83. .ft-main { color: #333; } .ft-base { color: #ff6a6c; } .ft-dark { color: #bbb; } .ft-black{ color: #333; } .ft-white { color: #fff; }
  84. .fs-xxs { font-size: 22rpx; } .fs-xs { font-size: 24rpx; } .fs-sm { font-size: 28rpx; } .fs { font-size: 32rpx; } .fs-lg { font-size: 36rpx; } .fs-xl { font-size: 40rpx; } .fs-xxl { font-size: 50rpx; } .fs-xxxl { font-size: 60rpx; } .fs-big { font-size: 52rpx; }
  85. .fs-20 {font-size: 20rpx;}.fs-30 {font-size: 30rpx;} .fs-34 { font-size: 34rpx; }
  86. .fwb{font-weight: 580;}.fwbd{ font-weight: bold; }.active{ color: #ff6a6c !important; } .disabled{ color: #bbb !important; }
  87. .border-line{border-bottom: 1px solid #f7f7f7;}
  88. .image-sm {width: 100rpx; height: 100rpx;} .overflow-hidden{overflow: hidden;}
  89. .headimg {border: 1px solid #f5f5f5;}
  90. /* 外边距 */
  91. .margin-0{margin: 0;}.margin-xs{margin: 10rpx;}.margin-sm{margin: 20rpx;}.margin{margin: 30rpx;}.margin-lg{margin: 40rpx;}.margin-xl{margin: 50rpx;}.margin-big{margin: 100rpx;}
  92. .margin-top-xs{margin-top: 10rpx;}.margin-top-sm{margin-top: 20rpx;}.margin-top{margin-top: 30rpx;}.margin-top-lg{margin-top: 40rpx;}.margin-top-xl{margin-top: 50rpx;}.margin-top-big{margin-top: 100rpx;}
  93. .margin-right-xs{margin-right: 10rpx;}.margin-right-sm{margin-right: 20rpx;}.margin-right{margin-right: 30rpx;}.margin-right-lg{margin-right: 40rpx;}.margin-right-xl{margin-right: 50rpx;}
  94. .margin-bottom-xs{margin-bottom: 10rpx;}.margin-bottom-sm{margin-bottom: 20rpx;}.margin-bottom{margin-bottom: 30rpx;}.margin-bottom-lg{margin-bottom: 40rpx;}.margin-bottom-xl{margin-bottom: 50rpx;} .margin-bottom-big {margin-bottom: 100rpx;}
  95. .margin-left-xs{margin-left: 10rpx;}.margin-left-sm{margin-left: 20rpx;}.margin-left{margin-left: 30rpx;}.margin-left-lg{margin-left: 40rpx;}.margin-left-xl{margin-left: 50rpx;}
  96. .margin-lr-xs{margin-left: 10rpx;margin-right: 10rpx;}.margin-lr-sm{margin-left: 20rpx;margin-right: 20rpx;}.margin-lr{margin-left: 30rpx;margin-right: 30rpx;}.margin-lr-lg{margin-left: 40rpx;margin-right: 40rpx;}.margin-lr-xl{margin-left: 50rpx;margin-right: 50rpx;}
  97. .margin-tb-xs{margin-top: 10rpx;margin-bottom: 10rpx;}.margin-tb-sm{margin-top: 20rpx;margin-bottom: 20rpx;}.margin-tb{margin-top: 30rpx;margin-bottom: 30rpx;}.margin-tb-lg{margin-top: 40rpx;margin-bottom: 40rpx;}.margin-tb-xl{margin-top: 50rpx;margin-bottom: 50rpx;}
  98. /* 内边距 */
  99. .padding-0{padding: 0;}.padding-xs{padding: 10rpx;}.padding-sm{padding: 20rpx;}.padding{padding: 30rpx;}.padding-lg{padding: 40rpx;}.padding-xl{padding: 50rpx;}
  100. .padding-top-xs{padding-top: 10rpx;}.padding-top-sm{padding-top: 20rpx;}.padding-top{padding-top: 30rpx;}.padding-top-lg{padding-top: 40rpx;}.padding-top-xl{padding-top: 50rpx;}.padding-top-big{padding-top: 100rpx;}
  101. .padding-right-xs{padding-right: 10rpx;}.padding-right-sm{padding-right: 20rpx;}.padding-right{padding-right: 30rpx;}.padding-right-lg{padding-right: 40rpx;}.padding-right-xl{padding-right: 50rpx;}.padding-right-0{padding-right: 0;}
  102. .padding-bottom-xs{padding-bottom: 10rpx;}.padding-bottom-sm{padding-bottom: 20rpx;}.padding-bottom{padding-bottom: 30rpx;}.padding-bottom-lg{padding-bottom: 40rpx;}.padding-bottom-xl{padding-bottom: 50rpx;}.padding-bottom-big{padding-bottom: 100rpx;}
  103. .padding-left-xs{padding-left: 10rpx;}.padding-left-sm{padding-left: 20rpx;}.padding-left{padding-left: 30rpx;}.padding-left-lg{padding-left: 40rpx;}.padding-left-xl{padding-left: 50rpx;}
  104. .padding-lr-xs{padding-left: 10rpx;padding-right: 10rpx;}.padding-lr-sm{padding-left: 20rpx;padding-right: 20rpx;}.padding-lr{padding-left: 30rpx;padding-right: 30rpx;}.padding-lr-lg{padding-left: 40rpx;padding-right: 40rpx;}.padding-lr-xl{padding-left: 50rpx;padding-right: 50rpx;}
  105. .padding-lr-16{padding-left: 16rpx;padding-right: 16rpx;}
  106. .padding-tb-xs{padding-top: 10rpx;padding-bottom: 10rpx;}.padding-tb-sm{padding-top: 20rpx;padding-bottom: 20rpx;}.padding-tb{padding-top: 30rpx;padding-bottom: 30rpx;}.padding-tb-lg{padding-top: 40rpx;padding-bottom: 40rpx;}.padding-tb-xl{padding-top: 50rpx;padding-bottom: 50rpx;}
  107. .padding-tb-16{padding-top: 16rpx;padding-bottom: 16rpx;}
  108. .animated{ -webkit-animation-duration: .55s; animation-duration: .55s; -webkit-animation-fill-mode: both; animation-fill-mode: both; }
  109. .animated-all { transition: all .5s; }
  110. .animated.rotate { animation: rotate .75s linear infinite; transform-origin: center center; }
  111. @keyframes rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
  112. .animated.fade-in { animation: fadein .75s linear;}
  113. @keyframes fadein { from { opacity: 0; } to { opacity: 1; } }
  114. .animated.fade-out { animation-name: fadeout; }
  115. @keyframes fadeout { from { opacity: 1; } to { opacity: 0; } }
  116. /* uni css */
  117. .uni-page-head-btn {
  118. display: flex;
  119. align-items: center;
  120. justify-content: center;
  121. }
  122. /* #ifdef H5 || MP-360 */
  123. ::-webkit-scrollbar {
  124. width: 0;
  125. height: 0;
  126. color: transparent;
  127. display: none;
  128. }
  129. /* #endif */
  130. .main-area {
  131. padding: 28rpx;
  132. }
  133. .use-area {
  134. border-radius: 9px;
  135. background: #fff;
  136. margin-top: 9px;
  137. margin-left: 2vw;
  138. margin-right: 2vw;
  139. }
  140. .source-area {
  141. background: #f5f5f5;
  142. .list {}
  143. .item {
  144. border-radius: 9px;
  145. width: 47vw;
  146. overflow: hidden;
  147. margin-top: 2vw;
  148. background: #fff;
  149. &:nth-child(2n) {
  150. margin-left: 1vw;
  151. }
  152. &:nth-child(2n + 1) {
  153. margin-right: 1vw;
  154. }
  155. }
  156. .image-wrapper {
  157. width: 100%;
  158. height: 350rpx;
  159. overflow: hidden;
  160. image {
  161. width: 100%;
  162. height: 100%;
  163. opacity: 1;
  164. }
  165. }
  166. }
  167. .dgrid {
  168. display: grid;
  169. justify-items: center;
  170. }
  171. .pos-b-full {
  172. bottom: 0;
  173. left: 0;
  174. right: 0;
  175. }
  176. .border-radius-top30 {
  177. border-top-left-radius: 14px;
  178. border-top-right-radius: 14px;
  179. }
  180. .ft-dark-3 {
  181. color: #737373;
  182. }
  183. .use-tags {
  184. display: flex;
  185. flex-wrap: wrap;
  186. align-items: center;
  187. }
  188. .use-tags uni-view {
  189. font-size: 22rpx;
  190. color: #ff6a6c;
  191. border: 1rpx solid #ff6a6c;
  192. line-height: 1;
  193. padding: 7rpx 7rpx;
  194. background: #fff5f5;
  195. border-radius: 10rpx;
  196. margin-right: 10rpx;
  197. }
  198. .tag-base {
  199. color: #fff;
  200. background: #ff6a6c;
  201. border: 1px solid #ff6a6c;
  202. }
  203. .tag-gray {
  204. color: #585858;
  205. background: #f5f5f5;
  206. border: 1px solid #f5f5f5;
  207. }
  208. .tag-base, .tag-warn, .tag-gray {
  209. border-radius: 14px;
  210. padding: 3px 11px;
  211. font-size: 11px;
  212. }
  213. .popup-area {
  214. max-height: 60vh;
  215. min-height: 30vh;
  216. }
  217. .use-list-title {
  218. height: 96rpx;
  219. line-height: 96rpx;
  220. .tip {
  221. font-size: 22rpx;
  222. color: silver;
  223. display: -webkit-box;
  224. overflow: hidden;
  225. text-overflow: ellipsis;
  226. word-wrap: break-all;
  227. -webkit-line-clamp: 1;
  228. -webkit-box-orient: vertical;
  229. }
  230. }
  231. .use-item {
  232. height: 96rpx;
  233. line-height: 96rpx;
  234. position: relative;
  235. background: #fff;
  236. }
  237. .coupon-area {
  238. min-height: 400rpx;
  239. .coupon-item {
  240. margin-bottom: 20rpx;
  241. .submit {
  242. margin-right: 20rpx;
  243. margin-bottom: 20rpx;
  244. }
  245. &:last-child {
  246. margin-bottom: 60rpx;
  247. }
  248. .content {
  249. &:after {
  250. position: absolute;
  251. left: 0;
  252. bottom: 0;
  253. content: '';
  254. width: 100%;
  255. height: 0;
  256. border-bottom: 1px dashed #f3f3f3;
  257. transform: scaleY(50%);
  258. }
  259. }
  260. .circle {
  261. position: absolute;
  262. bottom: -10rpx;
  263. z-index: 10;
  264. width: 20rpx;
  265. height: 20rpx;
  266. background: #f5f5f5;
  267. border-radius: 50%;
  268. &.r {
  269. right: -6rpx;
  270. }
  271. &.l {
  272. left: -6rpx;
  273. }
  274. }
  275. }
  276. }
  277. .alert-area {
  278. width: 80vw;
  279. padding: 76rpx;
  280. padding-top: 96rpx;
  281. .field {
  282. background-color: #f5f5f5;
  283. }
  284. }
  285. .margin-top-xxl {
  286. margin-top: 56rpx;
  287. }
  288. .wpre-50 {
  289. width: 50%;
  290. }
  291. .wpre-30 {
  292. width: 30%;
  293. }
  294. .arrow {
  295. font-size: 28rpx;
  296. color: #ccc;
  297. margin-left: 8rpx;
  298. }
  299. .slot-content {
  300. max-height: 60vh; /* 限制高度,占屏幕60% */
  301. overflow-y: auto; /* 超出时滚动 */
  302. padding: 20rpx; /* 给点内边距美观 */
  303. box-sizing: border-box;
  304. }