common.scss 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738
  1. @charset "UTF-8";
  2. // 全局变量
  3. $lightRed: #ff363c;
  4. $red: #d70011;
  5. $darkRed: #b80303;
  6. $orange: #f4b475;
  7. $violet: #928bba;
  8. $green: #75be7a;
  9. $blue: #86c8df;
  10. $yellow: #f7b143;
  11. $drakBrown: #a0815f;
  12. $brown: #cfa871;
  13. $lightBrown: #c9b691;
  14. $lightBlue: #8dbef3;
  15. $border-inner-left-side-color: #f6f6f6;
  16. $border-left-color: $border-inner-left-side-color;
  17. $border-right-color: $border-inner-left-side-color;
  18. $labelColors: $lightBlue, $lightBrown, $violet, $green, $blue, $yellow, $brown,
  19. $orange, $lightRed;
  20. $bgColor: $lightRed, $orange, $violet, $green, $blue;
  21. $bglightOrangeColor: #fbfaf8;
  22. $quickLinksColors: #fef7eb, #38ade3, #6438c9, #f8c821, #da1826;
  23. $yearCurrentColor: #d5b07f;
  24. $yearCurrentLineColor: #d1b790;
  25. $yearGrayColor: #999;
  26. $yearGrayLineColor: #c2c2c2;
  27. $leftBgColor: #fbfaf8;
  28. $minWidth: 1200px;
  29. $sgSubLefts: 360px, 440px-4px, 550px, 660px+2px, 770px+2px, 880px+2px,
  30. 990px+24px;
  31. $quickLinksBgImgTops: 60px, 60px, 58px, 56px, 90px;
  32. $quickLinksBgImgLefts: 0px, 88px, 70px, 80px, 30px;
  33. $qlbih1: 100px, 35px;
  34. $qlbih2: 170px, 30px;
  35. $qlbih3: 180px, 20px;
  36. $qlbih4: 170px, 40px;
  37. $qlbih5: 150px, 25px;
  38. $videoWidth: 1280px;
  39. $videoHeight: 720px;
  40. $quickLinksBgImgHovers: $qlbih1, $qlbih2, $qlbih3, $qlbih4, $qlbih5;
  41. // 图片路径
  42. $logo: "~@/assets/app/logo.svg";
  43. $qrcode-download: "~@/assets/app/qrcode-downlaod-icon.png";
  44. $qrcode-download-hover: "~@/assets/app/qrcode-downlaod-icon-hover.png";
  45. $qrcode: "~@/assets/app/qrcode-app-download.png";
  46. $search-icon: "~@/assets/app/search-icon.png";
  47. $search-icon-close: "~@/assets/app/search-icon-close.png";
  48. // 格式图标
  49. $mp3: "~@/assets/components/report/audio.svg";
  50. $doc: "~@/assets/components/report/doc.svg";
  51. $pdf: "~@/assets/components/report/pdf.svg";
  52. $ppt: "~@/assets/components/report/ppt.svg";
  53. $rtf: "~@/assets/components/report/rtf.svg";
  54. $txt: "~@/assets/components/report/txt.svg";
  55. $mp4: "~@/assets/components/report/video.svg";
  56. $xls: "~@/assets/components/report/xls.svg";
  57. $format: $mp3, $doc, $pdf, $ppt, $rtf, $txt, $mp4, $xls;
  58. $formatName: "mp3", "doc", "pdf", "ppt", "rtf", "txt", "mp4", "xls";
  59. // 方法
  60. @mixin gradient-bg($deg: to bottom, $startColr: white, $endColor: black) {
  61. background: -webkit-linear-gradient(#{$deg}deg, #{$startColr}, #{$endColor});
  62. background: -o-linear-gradient(#{$deg}deg, #{$startColr}, #{$endColor});
  63. background: -moz-linear-gradient(#{$deg}deg, #{$startColr}, #{$endColor});
  64. background: linear-gradient(#{$deg}deg, #{$startColr}, #{$endColor});
  65. }
  66. @mixin active($x: 1, $y: 1, $color: initial) {
  67. transform: translate(#{$x}px, #{$y}px);
  68. @if $color!=initial {
  69. color: $color;
  70. }
  71. }
  72. @mixin dot(
  73. $out-width: 0,
  74. $opacity: 0,
  75. $in-width: 10,
  76. $background-color: white,
  77. $border-olor: $red
  78. ) {
  79. &::before {
  80. content: "";
  81. /*父元素需要position: relative;*/
  82. position: absolute;
  83. margin: auto;
  84. top: 0;
  85. right: 0;
  86. bottom: 0;
  87. left: 0;
  88. border-radius: 100%;
  89. box-sizing: border-box;
  90. border: 1px solid $border-olor;
  91. width: #{$out-width}px;
  92. height: #{$out-width}px;
  93. opacity: $opacity;
  94. }
  95. &:after {
  96. content: "";
  97. /*父元素需要position: relative;*/
  98. position: absolute;
  99. margin: auto;
  100. top: 0;
  101. right: 0;
  102. bottom: 0;
  103. left: 0;
  104. border-radius: 100%;
  105. width: #{$in-width}px;
  106. height: #{$in-width}px;
  107. background: $background-color;
  108. }
  109. }
  110. @mixin scale($scale: 1.1) {
  111. transform: scale($scale);
  112. -ms-transform: scale($scale);
  113. /* IE 9 */
  114. -webkit-transform: scale($scale);
  115. /* Safari and Chrome */
  116. -o-transform: scale($scale);
  117. /* Opera */
  118. -moz-transform: scale($scale);
  119. /* Firefox */
  120. }
  121. $scrollbarWidth: 8;
  122. $scrollbarHeight: 8;
  123. @mixin scrollbar(
  124. $background-bg-color: #eeeeee,
  125. $background-thumb-color: $red,
  126. $background-thumb-hover-color: #aaa,
  127. $border-radius: 8,
  128. $width: $scrollbarWidth,
  129. $height: $scrollbarHeight
  130. ) {
  131. * {
  132. scrollbar-width: #{$width}px;
  133. }
  134. // 【局部】滚动条样式________________________
  135. &::-webkit-scrollbar {
  136. /*滚动条轨道*/
  137. background: $background-bg-color;
  138. border-radius: #{$border-radius}px;
  139. width: #{$width}px;
  140. height: #{$height}px;
  141. &-thumb {
  142. /*滚动条滑块*/
  143. background: $background-thumb-color;
  144. border-radius: #{$border-radius}px;
  145. &:hover {
  146. /*移入滑块*/
  147. background: $background-thumb-hover-color;
  148. }
  149. }
  150. }
  151. }
  152. @mixin opemt($opacity: 1, $pointer-events: auto, $margin-top: 0) {
  153. .sg-sub-overlay {
  154. pointer-events: $pointer-events;
  155. .sg-sub {
  156. // opacity: $opacity;
  157. margin-top: $margin-top;
  158. }
  159. }
  160. }
  161. @mixin multi-line-ellipsis($line: 3, $height: 80) {
  162. /*多行省略号*/
  163. display: -webkit-box;
  164. -webkit-box-orient: vertical;
  165. -webkit-line-clamp: $line;
  166. overflow: hidden;
  167. height: #{$height}px;
  168. }
  169. @mixin transition($second: 0.382, $property: all) {
  170. transition: $property #{$second}s;
  171. -moz-transition: $property #{$second}s;
  172. -webkit-transition: $property #{$second}s;
  173. -o-transition: $property #{$second}s;
  174. -khtml-transition: $property #{$second}s;
  175. }
  176. @mixin updownAnimate($second: 1) {
  177. animation: updownAnimate #{$second}s ease-in-out infinite;
  178. -moz-animation: updownAnimate #{$second}s ease-in-out infinite;
  179. -webkit-animation: updownAnimate #{$second}s ease-in-out infinite;
  180. -o-animation: updownAnimate #{$second}s ease-in-out infinite;
  181. @keyframes updownAnimate {
  182. 0% {
  183. background-position-y: top;
  184. }
  185. 50% {
  186. background-position-y: bottom;
  187. }
  188. 100% {
  189. background-position-y: top;
  190. }
  191. }
  192. @-moz-keyframes updownAnimate {
  193. 0% {
  194. background-position-y: top;
  195. }
  196. 50% {
  197. background-position-y: bottom;
  198. }
  199. 100% {
  200. background-position-y: top;
  201. }
  202. }
  203. @-webkit-keyframes updownAnimate {
  204. 0% {
  205. background-position-y: top;
  206. }
  207. 50% {
  208. background-position-y: bottom;
  209. }
  210. 100% {
  211. background-position-y: top;
  212. }
  213. }
  214. @-ms-keyframes updownAnimate {
  215. 0% {
  216. background-position-y: top;
  217. }
  218. 50% {
  219. background-position-y: bottom;
  220. }
  221. 100% {
  222. background-position-y: top;
  223. }
  224. }
  225. @-o-keyframes updownAnimate {
  226. 0% {
  227. background-position-y: top;
  228. }
  229. 50% {
  230. background-position-y: bottom;
  231. }
  232. 100% {
  233. background-position-y: top;
  234. }
  235. }
  236. }
  237. // 嵌套
  238. %flip-horizontal {
  239. transform: scaleX(-1);
  240. -ms-transform: scaleX(-1);
  241. /* IE 9 */
  242. -webkit-transform: scaleX(-1);
  243. /* Safari and Chrome */
  244. -o-transform: scaleX(-1);
  245. /* Opera */
  246. -moz-transform: scaleX(-1);
  247. /* Firefox */
  248. }
  249. %un-select {
  250. /*禁止选中文本*/
  251. -moz-user-select: none;
  252. -webkit-user-select: none;
  253. -ms-user-select: none;
  254. -khtml-user-select: none;
  255. user-select: none;
  256. }
  257. %single-line-ellipsis {
  258. /*单行省略号*/
  259. overflow: hidden;
  260. white-space: nowrap;
  261. text-overflow: ellipsis;
  262. }
  263. %dot {
  264. content: "";
  265. position: absolute;
  266. /*父元素需要position: relative;*/
  267. margin: auto;
  268. left: 0;
  269. right: 0;
  270. width: 8px;
  271. height: 8px;
  272. background: white;
  273. border: 3px solid #ccc;
  274. box-shadow: 0 6px 9px rgba(153, 153, 153, 0.35);
  275. border-radius: 8px;
  276. }
  277. %dot-red-shadow {
  278. border-color: $red;
  279. box-shadow: 0 6px 9px rgba(220, 24, 40, 0.35);
  280. }
  281. %cp {
  282. &[current] {
  283. cursor: not-allowed !important;
  284. pointer-events: none !important;
  285. }
  286. }
  287. %dj {
  288. display: flex;
  289. justify-content: space-between;
  290. }
  291. %dj-left {
  292. display: flex;
  293. justify-content: flex-start;
  294. }
  295. %dj-right {
  296. display: flex;
  297. justify-content: flex-end;
  298. }
  299. %dj-around {
  300. display: flex;
  301. justify-content: space-around;
  302. }
  303. %djfa-left {
  304. display: flex;
  305. justify-content: flex-start;
  306. flex-wrap: wrap;
  307. align-content: space-between;
  308. }
  309. %djfa-justify {
  310. display: flex;
  311. justify-content: space-between;
  312. flex-wrap: wrap;
  313. align-content: space-between;
  314. }
  315. %djfa-left-top-wrap {
  316. display: flex;
  317. flex-wrap: wrap;
  318. align-content: flex-start;
  319. }
  320. %right-angled-triangle {
  321. /* 向右的直角三角形 */
  322. content: "";
  323. position: absolute;
  324. top: 4px;
  325. right: -20px;
  326. width: 0;
  327. height: 0;
  328. border: 4px solid transparent;
  329. border-left-color: currentColor;
  330. }
  331. %sgDownArrow1 {
  332. /* 向下的直角箭头 */
  333. .sg-down-arrow {
  334. pointer-events: none;
  335. width: 43px;
  336. height: 43px;
  337. margin-left: -21px;
  338. margin-top: -9px;
  339. background: white;
  340. position: relative;
  341. &::after {
  342. content: "";
  343. /*父元素需要position: relative;*/
  344. position: absolute;
  345. margin: auto;
  346. top: -8px;
  347. left: -22px;
  348. right: 0;
  349. bottom: 0;
  350. border-width: 0 0 1px 1px;
  351. border-style: solid;
  352. border-color: #666;
  353. width: 7px;
  354. height: 7px;
  355. transform: rotate(-45deg);
  356. -ms-transform: rotate(-45deg);
  357. /* IE 9 */
  358. -webkit-transform: rotate(-45deg);
  359. /* Safari and Chrome */
  360. -o-transform: rotate(-45deg);
  361. /* Opera */
  362. -moz-transform: rotate(-45deg);
  363. /* Firefox */
  364. }
  365. }
  366. }
  367. %sgDownArrow2 {
  368. /* 向下的直角三角形箭头 */
  369. .sg-down-arrow {
  370. pointer-events: none;
  371. width: 43px;
  372. height: 43px;
  373. margin-left: -44px;
  374. margin-top: -9px;
  375. background: white;
  376. position: relative;
  377. &::after {
  378. content: "";
  379. z-index: 1;
  380. position: absolute;
  381. margin: auto;
  382. top: 6px;
  383. left: 31px;
  384. right: 0;
  385. bottom: 0;
  386. width: 0;
  387. height: 0;
  388. margin-left: -20px;
  389. /* border-width: 6px;
  390. border-style: solid;
  391. border-color: #ccc transparent transparent transparent; */
  392. border: 6px solid transparent;
  393. border-top-color: #ccc;
  394. }
  395. }
  396. }
  397. %transition {
  398. transition: 0.382s;
  399. -moz-transition: 0.382s;
  400. -webkit-transition: 0.382s;
  401. -o-transition: 0.382s;
  402. -khtml-transition: 0.382s;
  403. }
  404. %no-transition {
  405. transition: none !important;
  406. -moz-transition: none !important;
  407. -webkit-transition: none !important;
  408. -o-transition: none !important;
  409. -khtml-transition: none !important;
  410. }
  411. %p {
  412. & > p {
  413. color: $red;
  414. border-color: currentColor;
  415. &:after {
  416. transform: rotate(180deg);
  417. transform-origin: 5px 2px;
  418. border-top-color: currentColor;
  419. }
  420. }
  421. }
  422. %nav-hover {
  423. &[current] {
  424. @extend %p;
  425. }
  426. &[hover] {
  427. @extend %p;
  428. @include opemt(1, auto, 0);
  429. }
  430. }
  431. %subOvelay {
  432. .sg-sub-overlay {
  433. position: absolute;
  434. top: 120px;
  435. left: 0;
  436. width: 100%;
  437. height: 45px;
  438. overflow: hidden;
  439. .sg-sub {
  440. display: flex;
  441. position: absolute;
  442. height: 45px;
  443. font-size: 16px;
  444. color: rgba(255, 255, 255, 0.8);
  445. &:after {
  446. content: "";
  447. left: -3000px;
  448. top: 0;
  449. height: 45px;
  450. position: absolute;
  451. width: 6000px;
  452. background: rgba(0, 0, 0, 0.35);
  453. }
  454. li {
  455. cursor: pointer;
  456. height: 45px;
  457. line-height: 40px;
  458. z-index: 1;
  459. margin: 0 60px 0 0;
  460. &:hover {
  461. color: white;
  462. }
  463. &[current] {
  464. color: $red;
  465. }
  466. }
  467. }
  468. }
  469. @include opemt(0, none, -45px);
  470. }
  471. %transitionAll {
  472. @extend %transition;
  473. *:not(.el-message-box__wrapper),
  474. * ::before,
  475. * ::after {
  476. @extend %transition;
  477. }
  478. }
  479. %detail {
  480. font-size: 14px;
  481. text-align: center;
  482. & >>> p {
  483. @extend %transition;
  484. font-size: 14px;
  485. text-align: justify;
  486. line-height: 26px;
  487. color: #666;
  488. margin-bottom: 20px;
  489. &:hover {
  490. color: $red;
  491. }
  492. &:last-of-type {
  493. margin-bottom: 0;
  494. }
  495. }
  496. & >>> img {
  497. @extend %transition;
  498. margin-bottom: 20px;
  499. }
  500. }
  501. /* 无线循环往下往复淡入淡出运动 */
  502. %auto-down-animate {
  503. animation: auto-down-animate 1s ease-in-out infinite;
  504. -moz-animation: auto-down-animate 1s ease-in-out infinite;
  505. /** Firefox */
  506. -webkit-animation: auto-down-animate 1s ease-in-out infinite;
  507. /** Safari 和 Chrome */
  508. -o-animation: auto-down-animate 1s ease-in-out infinite;
  509. /** Opera */
  510. @keyframes auto-down-animate {
  511. 0% {
  512. opacity: 0;
  513. top: 0px;
  514. }
  515. 50% {
  516. opacity: 1;
  517. top: 13px;
  518. }
  519. 100% {
  520. opacity: 0;
  521. top: 27px;
  522. }
  523. }
  524. @-moz-keyframes auto-down-animate {
  525. 0% {
  526. -moz-transform: rotate(0deg);
  527. }
  528. 50% {
  529. -moz-transform: rotate(180deg);
  530. }
  531. 100% {
  532. -moz-transform: rotate(360deg);
  533. }
  534. }
  535. @-webkit-keyframes auto-down-animate {
  536. 0% {
  537. -webkit-transform: rotate(0deg);
  538. }
  539. 50% {
  540. -webkit-transform: rotate(180deg);
  541. }
  542. 100% {
  543. -webkit-transform: rotate(360deg);
  544. }
  545. }
  546. @-ms-keyframes auto-down-animate {
  547. 0% {
  548. -ms-transform: rotate(0deg);
  549. }
  550. 50% {
  551. -ms-transform: rotate(180deg);
  552. }
  553. 100% {
  554. -ms-transform: rotate(360deg);
  555. }
  556. }
  557. @-o-keyframes auto-down-animate {
  558. 0% {
  559. -o-transform: rotate(0deg);
  560. }
  561. 50% {
  562. -o-transform: rotate(180deg);
  563. }
  564. 100% {
  565. -o-transform: rotate(360deg);
  566. }
  567. }
  568. }
  569. /* 外发光动画、向外辐射动画效果 */
  570. $orangeColor: rgba(251, 193, 105, 0.6);
  571. %out-glow {
  572. &:before,
  573. &:after {
  574. background-color: $orangeColor;
  575. width: 70px;
  576. height: 70px;
  577. content: "";
  578. position: absolute;
  579. pointer-events: none;
  580. z-index: -1;
  581. border-radius: 100%;
  582. margin: auto;
  583. top: 0;
  584. left: 0;
  585. right: 0;
  586. bottom: 0;
  587. opacity: 0;
  588. animation: out-glow 1.5s infinite ease-out;
  589. -moz-animation: out-glow 1.5s infinite ease-out;
  590. /* Firefox */
  591. -webkit-animation: out-glow 1.5s infinite ease-out;
  592. /* Safari 和 Chrome */
  593. -o-animation: out-glow 1.5s infinite ease-out;
  594. /* Opera */
  595. animation-fill-mode: both;
  596. /*动画播放到最后一帧或者倒放到第一帧停止*/
  597. -webkit-animation-fill-mode: both;
  598. /* Safari 和 Chrome */
  599. }
  600. &:after {
  601. animation: out-glow 2.5s infinite ease-out;
  602. -moz-animation: out-glow 2.5s infinite ease-out;
  603. /* Firefox */
  604. -webkit-animation: out-glow 2.5s infinite ease-out;
  605. /* Safari 和 Chrome */
  606. -o-animation: out-glow 2.5s infinite ease-out;
  607. /* Opera */
  608. -ms-animation: out-glow 2.5s infinite ease-out;
  609. }
  610. @keyframes out-glow {
  611. 0% {
  612. opacity: 0;
  613. transform: scale(0);
  614. }
  615. 50% {
  616. opacity: 1;
  617. }
  618. 100% {
  619. opacity: 0;
  620. transform: scale(1.5);
  621. }
  622. }
  623. @-moz-keyframes out-glow {
  624. 0% {
  625. opacity: 0;
  626. -moz-transform: scale(0);
  627. }
  628. 50% {
  629. opacity: 1;
  630. }
  631. 100% {
  632. opacity: 0;
  633. -moz-transform: scale(1.5);
  634. }
  635. }
  636. @-webkit-keyframes out-glow {
  637. 0% {
  638. opacity: 0;
  639. -webkit-transform: scale(0);
  640. }
  641. 50% {
  642. opacity: 1;
  643. }
  644. 100% {
  645. opacity: 0;
  646. -webkit-transform: scale(1.5);
  647. }
  648. }
  649. @-o-keyframes out-glow {
  650. 0% {
  651. opacity: 0;
  652. -o-transform: scale(0);
  653. }
  654. 50% {
  655. opacity: 1;
  656. }
  657. 100% {
  658. opacity: 0;
  659. -o-transform: scale(1.5);
  660. }
  661. }
  662. @-ms-keyframes out-glow {
  663. 0% {
  664. opacity: 0;
  665. -ms-transform: scale(0);
  666. }
  667. 50% {
  668. opacity: 1;
  669. }
  670. 100% {
  671. opacity: 0;
  672. -ms-transform: scale(1.5);
  673. }
  674. }
  675. }
  676. %gray {
  677. /*全站变成灰色(去色)*/
  678. filter: grayscale(10%);
  679. -moz-filter: grayscale(100%);
  680. -o-filter: grayscale(100%);
  681. -webkit-filter: grayscale(1);
  682. }
  683. input,
  684. textarea {
  685. font-family: "system-ui";
  686. &::placeholder {
  687. font-family: "system-ui";
  688. }
  689. }
  690. $body-width-100: calc(100vw - #{$scrollbarWidth}px);
  691. $body-width-min: 1000px;
  692. $body-height-100: calc(100vh - (#{$scrollbarHeight}px * 2));
  693. $headerHeight: 80px;
  694. $childBody: calc(100% - 260px);
  695. $navbarWidth: 210px;
  696. // 滚动条样式________________________
  697. @include scrollbar(white, #cfcfcf, #aaa, 0);