app.less 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772
  1. /* 静态资源地址 */
  2. @staticUrl: "http://ost.4dage.com/art/artHYC/static";
  3. .style-loop(@i: 1) when (@i<11) {
  4. .style-@{i} {
  5. background-image: url("@{staticUrl}/images/styles/@{i}.png");
  6. &.active {
  7. background-image: url("@{staticUrl}/images/styles/@{i}-active.png");
  8. }
  9. }
  10. .style-loop((@i+1));
  11. }
  12. .style-flag-loop(@i: 1) when (@i<11) {
  13. .style-@{i} {
  14. background-image: url("@{staticUrl}/images/styles-flag/@{i}.png");
  15. }
  16. .style-flag-loop((@i+1));
  17. }
  18. *,
  19. *::before,
  20. *::after {
  21. margin: 0;
  22. padding: 0;
  23. box-sizing: border-box;
  24. outline: 0;
  25. -webkit-tap-highlight-color: transparent;
  26. }
  27. .clearfix::after {
  28. content: " ";
  29. visibility: hidden;
  30. display: block;
  31. font-size: 0;
  32. line-height: 0;
  33. height: 0;
  34. clear: both;
  35. }
  36. html,
  37. body {
  38. width: 100%;
  39. height: 100%;
  40. }
  41. html {
  42. -webkit-text-size-adjust: none;
  43. -webkit-font-smoothing: antialiased;
  44. }
  45. body {
  46. font-size: 14px !important;
  47. }
  48. .animated {
  49. display: block !important;
  50. }
  51. .app-mask {
  52. display: none;
  53. position: fixed;
  54. left: 0;
  55. top: 0;
  56. right: 0;
  57. bottom: 0;
  58. z-index: 100;
  59. background-color: rgba(0, 0, 0, 0.4);
  60. &.white {
  61. background-color: rgba(0, 0, 0, 0)
  62. }
  63. }
  64. .app-alert {
  65. display: none;
  66. animation-duration: .3s;
  67. animation-delay: .3s;
  68. position: fixed;
  69. width: 80vw;
  70. left: 50%;
  71. top: 25%;
  72. margin-left: -40vw;
  73. border-radius: 12px;
  74. z-index: 101;
  75. background: #fff no-repeat center 10%;
  76. background-size: 20%;
  77. &.timeout {
  78. background-image: url("@{staticUrl}/images/icon/used-timeout.png");
  79. }
  80. &.stop {
  81. background-image: url("@{staticUrl}/images/icon/used-stop.png");
  82. }
  83. &.used {
  84. background-image: url("@{staticUrl}/images/icon/used.png");
  85. }
  86. &.error {
  87. background-image: url("@{staticUrl}/images/icon/error.png");
  88. }
  89. &.fail {
  90. background-image: url("@{staticUrl}/images/icon/fail.png");
  91. }
  92. &.timeout,
  93. &.stop,
  94. &.used {
  95. .btns {
  96. a:last-child {
  97. color: #3EAFFF;
  98. }
  99. }
  100. }
  101. &.error,
  102. &.fail {
  103. .btns {
  104. a:last-child {
  105. color: #F5615F;
  106. }
  107. }
  108. }
  109. .tips {
  110. margin-top: 30%;
  111. margin-bottom: 5%;
  112. text-align: center;
  113. color: #888;
  114. line-height: 1.5;
  115. font-size: 16px;
  116. }
  117. .btns {
  118. width: 100%;
  119. font-size: 0;
  120. border: solid 1px #efefef;
  121. background: #fff;
  122. border-bottom-left-radius: 12px;
  123. border-bottom-right-radius: 12px;
  124. a {
  125. display: inline-block;
  126. width: 50%;
  127. padding: 5%;
  128. color: #666;
  129. text-decoration: none;
  130. text-align: center;
  131. font-size: 16px;
  132. border-right: solid 1px #efefef;
  133. }
  134. }
  135. }
  136. .app-view {
  137. display: none;
  138. padding: 16px;
  139. animation-duration: .3s;
  140. animation-delay: .3s;
  141. position: fixed;
  142. width: 86vw;
  143. height: 36vh;
  144. left: 50%;
  145. top: 35%;
  146. margin-left: -43vw;
  147. margin-top: -18vh;
  148. background-color: #fff;
  149. border-radius: 12px;
  150. z-index: 101;
  151. &.vertical{
  152. width: 32vh;
  153. height: 53vh;
  154. top: 25%;
  155. margin-left: -16vh;
  156. .tip {
  157. top: 53vh;
  158. .close {
  159. bottom: 10vh;
  160. }
  161. }
  162. }
  163. .img,
  164. img {
  165. width: 100%;
  166. height: 100%;
  167. }
  168. .tip {
  169. position: absolute;
  170. top: 36vh;
  171. left: 0;
  172. height: 40vh;
  173. line-height: 40vh;
  174. width: 100%;
  175. background: url("@{staticUrl}/images/icon/touch-save.png") no-repeat center 5%;
  176. background-size: 20%;
  177. text-align: center;
  178. color: #fff;
  179. >div {
  180. display: inline-block;
  181. line-height: 1.5;
  182. font-size: 16px;
  183. }
  184. .close {
  185. width: 26px;
  186. height: 26px;
  187. position: absolute;
  188. left: 50%;
  189. margin-left: -13px;
  190. bottom: 5vh;
  191. background: url("@{staticUrl}/images/icon/touch-close.png") no-repeat center center;
  192. background-size: 100% 100%;
  193. }
  194. }
  195. }
  196. .app-action-tips {
  197. animation-duration: .3s;
  198. animation-delay: .3s;
  199. display: none;
  200. position: fixed;
  201. width: 66vw;
  202. height: 28vh;
  203. left: 50%;
  204. top: 40%;
  205. margin-left: -33vw;
  206. margin-top: -14vh;
  207. z-index: 101;
  208. .content {
  209. display: none;
  210. position: relative;
  211. width: 100%;
  212. height: 100%;
  213. color: #fff;
  214. background-color: rgba(0, 0, 0, 0.7);
  215. border-radius: 12px;
  216. background-repeat: no-repeat;
  217. background-position: 50% 25%;
  218. .tips {
  219. font-size: 18px;
  220. position: absolute;
  221. left: 0;
  222. bottom: 15%;
  223. width: 100%;
  224. text-align: center;
  225. }
  226. &.face-1 {
  227. background-image: url("@{staticUrl}/images/icon/face-1.png");
  228. background-size: 30%;
  229. .tips {
  230. font-size: 16px;
  231. bottom: 10%;
  232. }
  233. }
  234. &.face-2 {
  235. background-image: url("@{staticUrl}/images/icon/face-2.png");
  236. background-size: 30%;
  237. }
  238. &.face-3 {
  239. background-image: url("@{staticUrl}/images/icon/face-3.png");
  240. background-size: 30%;
  241. }
  242. &.face-4 {
  243. background-image: url("@{staticUrl}/images/icon/face-4.png");
  244. background-size: 30%;
  245. }
  246. &.loading {
  247. background-color: rgba(255, 255, 255, 0.9);
  248. .tips {
  249. font-size: 15px;
  250. color: #999999;
  251. }
  252. .lds-spinner {
  253. position: absolute;
  254. left: 50%;
  255. top: 30%;
  256. transform: translate(-50%, -30%)
  257. }
  258. }
  259. &.loading-switch {
  260. .tips {
  261. font-size: 15px;
  262. color: #ffff;
  263. }
  264. .lds-spinner {
  265. position: absolute;
  266. left: 50%;
  267. top: 30%;
  268. transform: translate(-50%, -30%)
  269. }
  270. }
  271. }
  272. }
  273. .app-main {
  274. width: 100%;
  275. height: 55vh;
  276. .ads-swiper {
  277. height: 4.5rem;
  278. .swiper-slide {
  279. text-align: center;
  280. font-size: 18px;
  281. background: #fff;
  282. /* Center slide text vertically */
  283. display: -webkit-box;
  284. display: -ms-flexbox;
  285. display: -webkit-flex;
  286. display: flex;
  287. -webkit-box-pack: center;
  288. -ms-flex-pack: center;
  289. -webkit-justify-content: center;
  290. justify-content: center;
  291. -webkit-box-align: center;
  292. -ms-flex-align: center;
  293. -webkit-align-items: center;
  294. align-items: center;
  295. img {
  296. width: 100%;
  297. height: 100%;
  298. }
  299. }
  300. .swiper-pagination-bullet-active {
  301. background: #fff;
  302. }
  303. }
  304. .nav-menu {
  305. box-shadow: 0 0.03rem 10px #efefef;
  306. ul {
  307. padding: 0.3rem 0;
  308. list-style: none;
  309. font-size: 0;
  310. }
  311. li {
  312. display: inline-block;
  313. width: 50%;
  314. font-size: 12px;
  315. text-align: center;
  316. &:first-child {
  317. border-right: solid 1px #DFDFDF;
  318. }
  319. a {
  320. display: inline-block;
  321. width: 1.3rem;
  322. height: 1.52rem;
  323. background-repeat: no-repeat;
  324. background-position: center center;
  325. background-size: contain;
  326. }
  327. a.btn-pic-take {
  328. background-image: url("@{staticUrl}/images/btn-pic-take.png");
  329. }
  330. a.btn-pic-list {
  331. background-image: url("@{staticUrl}/images/btn-pic-list.png");
  332. }
  333. }
  334. }
  335. }
  336. .app-switch {
  337. width: 100%;
  338. height: 45vh;
  339. .swt-style {
  340. padding-top: 10%;
  341. a {
  342. float: left;
  343. width: 2.5rem;
  344. height: 0.7rem;
  345. background-repeat: no-repeat;
  346. background-position: center center;
  347. background-size: contain;
  348. &:last-child {
  349. float: right;
  350. }
  351. &.switch {
  352. margin-left: 0.14rem;
  353. background-image: url("@{staticUrl}/images/switch.png");
  354. }
  355. &.logo {
  356. margin-right: 0.1rem;
  357. background-image: url("@{staticUrl}/images/logo.png");
  358. }
  359. }
  360. }
  361. .stl-swiper {
  362. height: 70%;
  363. .swiper-slide {
  364. text-align: center;
  365. font-size: 18px;
  366. /* Center slide text vertically */
  367. display: -webkit-box;
  368. display: -ms-flexbox;
  369. display: -webkit-flex;
  370. display: flex;
  371. -webkit-box-pack: center;
  372. -ms-flex-pack: center;
  373. -webkit-justify-content: center;
  374. justify-content: center;
  375. -webkit-box-align: center;
  376. -ms-flex-align: center;
  377. -webkit-align-items: center;
  378. align-items: center;
  379. background-repeat: no-repeat;
  380. background-position: center center;
  381. background-size: contain;
  382. }
  383. .style-loop()
  384. }
  385. }
  386. .my-pic-list {
  387. display: none;
  388. position: absolute;
  389. left: 0;
  390. top: 0;
  391. width: 100%;
  392. height: 100%;
  393. background: #fff;
  394. z-index: 10;
  395. header {
  396. padding-top: 0.16rem;
  397. padding-left: 0.27rem;
  398. padding-right: 0.27rem;
  399. position: absolute;
  400. left: 0;
  401. top: 0;
  402. height: 1.2rem;
  403. width: 100%;
  404. .home-nav {
  405. background-image: url("@{staticUrl}/images/mypic.png");
  406. background-repeat: no-repeat;
  407. background-position: center right;
  408. background-size: auto 100%;
  409. .btn-back {
  410. display: block;
  411. width: 1.12rem;
  412. height: 0.68rem;
  413. background-image: url("@{staticUrl}/images/back.png");
  414. background-repeat: no-repeat;
  415. background-position: center center;
  416. background-size: 100% 100%;
  417. }
  418. }
  419. .tips {
  420. font-size: 10px;
  421. text-align: right;
  422. color: #00b3ec;
  423. }
  424. }
  425. article {
  426. position: absolute;
  427. left: 0;
  428. top: 1.21rem;
  429. bottom: 0;
  430. width: 100%;
  431. ul {
  432. list-style: none;
  433. }
  434. }
  435. .pic-swiper {
  436. width: 100%;
  437. height: 100%;
  438. padding-left: 0.27rem;
  439. padding-right: 0.27rem;
  440. .swiper-slide {
  441. height: 2.52rem;
  442. text-align: center;
  443. background: #fff;
  444. /* Center slide text vertically */
  445. display: -webkit-box;
  446. display: -ms-flexbox;
  447. display: -webkit-flex;
  448. display: flex;
  449. -webkit-box-pack: center;
  450. -ms-flex-pack: center;
  451. -webkit-justify-content: center;
  452. justify-content: center;
  453. -webkit-box-align: center;
  454. -ms-flex-align: center;
  455. -webkit-align-items: center;
  456. align-items: center;
  457. background-repeat: no-repeat;
  458. background-position: center center;
  459. background-size: contain;
  460. border-bottom: solid 1px #e9e9e9;
  461. padding-top: 0.21rem;
  462. padding-bottom: 0.21rem;
  463. .img {
  464. width: 40%;
  465. height: 100%;
  466. &.vertical{
  467. padding: 0 8%;
  468. }
  469. img {
  470. width: 100%;
  471. height: 100%;
  472. }
  473. }
  474. .info {
  475. width: 60%;
  476. height: 100%;
  477. }
  478. .time {
  479. margin-top: 12%;
  480. color: #686868;
  481. font-weight: 500;
  482. font-size: 14px;
  483. text-align: center;
  484. }
  485. .style {
  486. margin-top: 2%;
  487. height: 0.7rem;
  488. background-position: center center;
  489. background-size: auto 100%;
  490. background-repeat: no-repeat;
  491. }
  492. .style-flag-loop()
  493. }
  494. .swiper-scrollbar {
  495. right: 0px !important;
  496. width: 4px !important;
  497. }
  498. .swiper-scrollbar-drag {
  499. background: rgba(0, 0, 0, .3) !important;
  500. }
  501. }
  502. }
  503. .lds-spinner {
  504. color: official;
  505. display: inline-block;
  506. position: relative;
  507. width: 64px;
  508. height: 64px;
  509. }
  510. .lds-spinner div {
  511. transform-origin: 32px 32px;
  512. animation: lds-spinner 1.2s linear infinite;
  513. }
  514. .lds-spinner div:after {
  515. content: " ";
  516. display: block;
  517. position: absolute;
  518. top: 3px;
  519. left: 29px;
  520. width: 5px;
  521. height: 14px;
  522. border-radius: 20%;
  523. background: #999999;
  524. }
  525. .lds-spinner div:nth-child(1) {
  526. transform: rotate(0deg);
  527. animation-delay: -1.1s;
  528. }
  529. .lds-spinner div:nth-child(2) {
  530. transform: rotate(30deg);
  531. animation-delay: -1s;
  532. }
  533. .lds-spinner div:nth-child(3) {
  534. transform: rotate(60deg);
  535. animation-delay: -0.9s;
  536. }
  537. .lds-spinner div:nth-child(4) {
  538. transform: rotate(90deg);
  539. animation-delay: -0.8s;
  540. }
  541. .lds-spinner div:nth-child(5) {
  542. transform: rotate(120deg);
  543. animation-delay: -0.7s;
  544. }
  545. .lds-spinner div:nth-child(6) {
  546. transform: rotate(150deg);
  547. animation-delay: -0.6s;
  548. }
  549. .lds-spinner div:nth-child(7) {
  550. transform: rotate(180deg);
  551. animation-delay: -0.5s;
  552. }
  553. .lds-spinner div:nth-child(8) {
  554. transform: rotate(210deg);
  555. animation-delay: -0.4s;
  556. }
  557. .lds-spinner div:nth-child(9) {
  558. transform: rotate(240deg);
  559. animation-delay: -0.3s;
  560. }
  561. .lds-spinner div:nth-child(10) {
  562. transform: rotate(270deg);
  563. animation-delay: -0.2s;
  564. }
  565. .lds-spinner div:nth-child(11) {
  566. transform: rotate(300deg);
  567. animation-delay: -0.1s;
  568. }
  569. .lds-spinner div:nth-child(12) {
  570. transform: rotate(330deg);
  571. animation-delay: 0s;
  572. }
  573. @keyframes lds-spinner {
  574. 0% {
  575. opacity: 1;
  576. }
  577. 100% {
  578. opacity: 0;
  579. }
  580. }
  581. // @media only screen
  582. // and (min-device-width: 320px)
  583. // and (max-device-width: 568px)
  584. // and (-webkit-min-device-pixel-ratio: 2) {
  585. // .app-main {
  586. // .nav-menu {
  587. // ul {
  588. // padding: 0.15rem 0;
  589. // }
  590. // }
  591. // }
  592. // }
  593. @media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3){
  594. .app-main {
  595. height: 58vh;
  596. .nav-menu {
  597. ul {
  598. padding: 1.2rem 0;
  599. }
  600. }
  601. }
  602. .app-switch {
  603. height: 42vh;
  604. }
  605. }
  606. @media only screen and (device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2){
  607. .app-main {
  608. height: auto;
  609. .nav-menu {
  610. ul {
  611. padding: 0.15rem 0;
  612. }
  613. li{
  614. a{
  615. width: 1rem;
  616. height: 1.3rem;
  617. }
  618. }
  619. }
  620. }
  621. .app-switch {
  622. height: 3.5rem;
  623. .swt-style {
  624. padding-top: 2%;
  625. a {
  626. width: 1.5rem;
  627. height: 0.5rem;
  628. }
  629. }
  630. }
  631. }
  632. @media only screen and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2){
  633. .app-main {
  634. height: auto;
  635. .nav-menu {
  636. ul {
  637. padding: 0.5rem 0;
  638. }
  639. li{
  640. a{
  641. width: 1.5rem;
  642. height: 2rem;
  643. }
  644. }
  645. }
  646. }
  647. .app-switch {
  648. height: 4.5rem;
  649. .swt-style {
  650. padding-top: 5%;
  651. }
  652. }
  653. }
  654. @media screen and (max-width:320px) {
  655. .app-main {
  656. .nav-menu {
  657. ul {
  658. padding: 0.15rem 0;
  659. }
  660. }
  661. }
  662. }