微信小店联盟带货小程序

detail.wxss 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935
  1. /* pages/goods/detail.wxss */
  2. .container {
  3. min-height: 100vh;
  4. background: #f7f8fa;
  5. padding-bottom: 120rpx;
  6. }
  7. /* 加载状态 */
  8. .loading {
  9. position: fixed;
  10. left: 0;
  11. right: 0;
  12. top: 0;
  13. bottom: 0;
  14. background: #fff;
  15. display: flex;
  16. align-items: center;
  17. justify-content: center;
  18. z-index: 999;
  19. }
  20. .loading-icon {
  21. width: 120rpx;
  22. height: 120rpx;
  23. animation: rotate 1s linear infinite;
  24. }
  25. @keyframes rotate {
  26. from { transform: rotate(0deg); }
  27. to { transform: rotate(360deg); }
  28. }
  29. /* 轮播图 */
  30. .swiper-box {
  31. width: 100%;
  32. height: 750rpx;
  33. position: relative;
  34. background: #fff;
  35. }
  36. .slide-image {
  37. width: 100%;
  38. height: 100%;
  39. transition: transform 0.3s ease;
  40. }
  41. .slide-image:active {
  42. transform: scale(0.98);
  43. }
  44. /* 商品信息 */
  45. .goods-info {
  46. margin-top: -20rpx;
  47. background: #fff;
  48. border-radius: 24rpx 24rpx 0 0;
  49. overflow: hidden;
  50. position: relative;
  51. z-index: 1;
  52. box-shadow: 0 -4rpx 16rpx rgba(0, 0, 0, 0.05);
  53. }
  54. .price-section {
  55. padding: 24rpx 30rpx;
  56. background: linear-gradient(135deg, #ff4d4f 0%, #ff7875 100%);
  57. color: #fff;
  58. display: flex;
  59. justify-content: space-between;
  60. align-items: center;
  61. }
  62. .price-wrapper {
  63. display: flex;
  64. align-items: baseline;
  65. }
  66. .current-price {
  67. font-size: 48rpx;
  68. font-weight: 600;
  69. margin-right: 16rpx;
  70. }
  71. .original-price {
  72. font-size: 28rpx;
  73. text-decoration: line-through;
  74. opacity: 0.8;
  75. }
  76. .commission-wrapper {
  77. display: flex;
  78. align-items: center;
  79. background: linear-gradient(135deg, #ff9a9e 0%, #ff4d4f 100%);
  80. border-radius: 28rpx;
  81. padding: 8rpx 20rpx;
  82. box-shadow: 0 4rpx 12rpx rgba(255, 77, 79, 0.2);
  83. animation: pulse 2s infinite;
  84. }
  85. @keyframes pulse {
  86. 0% { transform: scale(1); }
  87. 50% { transform: scale(1.05); }
  88. 100% { transform: scale(1); }
  89. }
  90. .commission-icon {
  91. width: 32rpx;
  92. height: 32rpx;
  93. margin-right: 8rpx;
  94. }
  95. .commission-text {
  96. color: #fff;
  97. font-size: 26rpx;
  98. font-weight: 600;
  99. }
  100. .title-section {
  101. padding: 24rpx 30rpx;
  102. background: #fff;
  103. }
  104. .title-wrap {
  105. display: flex;
  106. align-items: flex-start;
  107. margin-bottom: 16rpx;
  108. }
  109. .goods-title {
  110. flex: 1;
  111. font-size: 32rpx;
  112. font-weight: 600;
  113. color: #333;
  114. line-height: 1.5;
  115. margin-right: 16rpx;
  116. }
  117. .sales-badge {
  118. flex-shrink: 0;
  119. font-size: 22rpx;
  120. color: #ff4d4f;
  121. background: #fff5f5;
  122. padding: 4rpx 12rpx;
  123. border-radius: 20rpx;
  124. line-height: 1.4;
  125. margin-top: 4rpx;
  126. }
  127. .goods-tags {
  128. display: flex;
  129. flex-wrap: wrap;
  130. margin-top: 16rpx;
  131. gap: 12rpx;
  132. }
  133. .tag-item {
  134. display: inline-flex;
  135. align-items: center;
  136. padding: 6rpx 16rpx;
  137. background: linear-gradient(135deg, rgba(255, 77, 79, 0.08), rgba(255, 107, 107, 0.08));
  138. border-radius: 20rpx;
  139. border: 1rpx solid rgba(255, 77, 79, 0.15);
  140. }
  141. .tag-item text {
  142. font-size: 22rpx;
  143. color: #ff4d4f;
  144. line-height: 1.4;
  145. }
  146. .action-buttons {
  147. display: flex;
  148. flex-direction: column;
  149. align-items: center;
  150. }
  151. .collect-btn, .share-btn {
  152. display: flex;
  153. flex-direction: column;
  154. align-items: center;
  155. padding: 0 20rpx;
  156. transition: transform 0.2s ease;
  157. }
  158. .collect-btn:active, .share-btn:active {
  159. transform: scale(0.9);
  160. }
  161. .collect-btn image, .share-btn image {
  162. width: 44rpx;
  163. height: 44rpx;
  164. margin-bottom: 8rpx;
  165. }
  166. .collect-btn text, .share-btn text {
  167. font-size: 22rpx;
  168. color: #fff;
  169. }
  170. .collected text {
  171. color: #ff4d4f;
  172. }
  173. /* 商品详情 */
  174. .goods-detail {
  175. margin-top: 20rpx;
  176. background: #fff;
  177. padding: 30rpx;
  178. }
  179. .detail-title {
  180. display: flex;
  181. align-items: center;
  182. margin-bottom: 30rpx;
  183. position: relative;
  184. padding-left: 20rpx;
  185. }
  186. .detail-title::before {
  187. content: '';
  188. position: absolute;
  189. left: 0;
  190. top: 50%;
  191. transform: translateY(-50%);
  192. width: 6rpx;
  193. height: 32rpx;
  194. background: #ff4d4f;
  195. border-radius: 3rpx;
  196. }
  197. .title-text {
  198. font-size: 32rpx;
  199. font-weight: bold;
  200. color: #333;
  201. }
  202. .detail-image {
  203. width: 100%;
  204. border-radius: 12rpx;
  205. margin-bottom: 20rpx;
  206. box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05);
  207. }
  208. /* 热门推荐样式优化 */
  209. .hot-recommendations {
  210. margin: 20rpx 0;
  211. background: #fff;
  212. padding: 30rpx 0;
  213. }
  214. .section-title {
  215. padding: 0 30rpx;
  216. margin-bottom: 30rpx;
  217. display: flex;
  218. align-items: center;
  219. }
  220. .section-title .title-text {
  221. font-size: 34rpx;
  222. font-weight: 600;
  223. color: #333;
  224. position: relative;
  225. padding-left: 24rpx;
  226. }
  227. .section-title .title-text::before {
  228. content: '';
  229. position: absolute;
  230. left: 0;
  231. top: 50%;
  232. transform: translateY(-50%);
  233. width: 8rpx;
  234. height: 32rpx;
  235. background: linear-gradient(to bottom, #ff4d4f, #ff7875);
  236. border-radius: 4rpx;
  237. }
  238. .recommendations-swiper {
  239. height: 520rpx;
  240. width: 100%;
  241. }
  242. .recommendation-item {
  243. padding: 10rpx;
  244. box-sizing: border-box;
  245. transition: all 0.3s ease;
  246. }
  247. .recommendation-card {
  248. background: #fff;
  249. border-radius: 16rpx;
  250. overflow: hidden;
  251. box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.06);
  252. height: 100%;
  253. transform: scale(0.95);
  254. transition: all 0.3s ease;
  255. }
  256. .recommendation-card.active {
  257. transform: scale(1);
  258. }
  259. .recommendation-image-wrap {
  260. position: relative;
  261. width: 100%;
  262. height: 320rpx;
  263. overflow: hidden;
  264. }
  265. .recommendation-image {
  266. width: 100%;
  267. height: 100%;
  268. transition: transform 0.3s ease;
  269. }
  270. .recommendation-card:active .recommendation-image {
  271. transform: scale(1.05);
  272. }
  273. .recommendation-tag {
  274. position: absolute;
  275. left: 16rpx;
  276. top: 16rpx;
  277. background: linear-gradient(135deg, #ff4d4f, #ff7875);
  278. color: #fff;
  279. font-size: 22rpx;
  280. padding: 6rpx 16rpx;
  281. border-radius: 20rpx;
  282. box-shadow: 0 4rpx 8rpx rgba(255, 77, 79, 0.2);
  283. }
  284. .recommendation-info {
  285. padding: 20rpx;
  286. }
  287. .recommendation-title-wrap {
  288. margin-bottom: 16rpx;
  289. }
  290. .recommendation-title {
  291. font-size: 26rpx;
  292. color: #333;
  293. line-height: 1.4;
  294. height: 72rpx;
  295. display: -webkit-box;
  296. -webkit-box-orient: vertical;
  297. -webkit-line-clamp: 2;
  298. overflow: hidden;
  299. }
  300. .recommendation-price-row {
  301. display: flex;
  302. align-items: center;
  303. justify-content: space-between;
  304. }
  305. .price-wrap {
  306. display: flex;
  307. align-items: baseline;
  308. }
  309. .currency {
  310. font-size: 24rpx;
  311. color: #ff4d4f;
  312. margin-right: 2rpx;
  313. font-weight: 500;
  314. }
  315. .price {
  316. font-size: 32rpx;
  317. color: #ff4d4f;
  318. font-weight: 600;
  319. }
  320. .sales-wrap {
  321. background: #fff5f5;
  322. padding: 4rpx 12rpx;
  323. border-radius: 20rpx;
  324. }
  325. .sales {
  326. font-size: 20rpx;
  327. color: #ff4d4f;
  328. }
  329. @keyframes slideIn {
  330. from { transform: translateX(100%); }
  331. to { transform: translateX(0); }
  332. }
  333. .recommendation-item {
  334. animation: slideIn 0.3s ease-out;
  335. }
  336. /* 推荐商品 */
  337. .recommend-section {
  338. margin-top: 20rpx;
  339. background: #fff;
  340. padding: 30rpx;
  341. }
  342. .recommend-title {
  343. font-size: 32rpx;
  344. font-weight: bold;
  345. color: #333;
  346. margin-bottom: 30rpx;
  347. }
  348. .recommend-list {
  349. display: flex;
  350. flex-wrap: wrap;
  351. margin: 0 -10rpx;
  352. }
  353. .recommend-item {
  354. width: calc(50% - 20rpx);
  355. margin: 10rpx;
  356. background: #fff;
  357. border-radius: 12rpx;
  358. overflow: hidden;
  359. box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05);
  360. transition: transform 0.2s ease;
  361. }
  362. .recommend-item:active {
  363. transform: translateY(2rpx);
  364. }
  365. .recommend-image {
  366. width: 100%;
  367. height: 320rpx;
  368. background: #f5f5f5;
  369. }
  370. .recommend-info {
  371. padding: 20rpx;
  372. }
  373. .recommend-name {
  374. font-size: 28rpx;
  375. color: #333;
  376. line-height: 1.4;
  377. margin-bottom: 12rpx;
  378. display: -webkit-box;
  379. -webkit-box-orient: vertical;
  380. -webkit-line-clamp: 2;
  381. overflow: hidden;
  382. }
  383. .recommend-price-wrapper {
  384. display: flex;
  385. align-items: baseline;
  386. justify-content: space-between;
  387. }
  388. .recommend-price {
  389. font-size: 32rpx;
  390. color: #ff4d4f;
  391. font-weight: bold;
  392. }
  393. .recommend-commission {
  394. font-size: 24rpx;
  395. color: #ff7875;
  396. }
  397. /* 底部按钮样式优化 */
  398. .bottom-bar {
  399. position: fixed;
  400. left: 0;
  401. right: 0;
  402. bottom: 0;
  403. display: flex;
  404. align-items: center;
  405. padding: 16rpx 24rpx calc(16rpx + env(safe-area-inset-bottom));
  406. background: #fff;
  407. box-shadow: 0 -1rpx 6rpx rgba(0, 0, 0, 0.02);
  408. z-index: 100;
  409. }
  410. .share-poster-btn,
  411. .share-btn {
  412. flex: 1;
  413. height: 80rpx;
  414. margin: 0 12rpx;
  415. border-radius: 40rpx;
  416. border: none;
  417. padding: 0;
  418. font-weight: normal;
  419. position: relative;
  420. overflow: hidden;
  421. }
  422. .share-poster-btn {
  423. background: rgba(255, 77, 79, 0.08);
  424. }
  425. .btn-content,
  426. .share-content {
  427. height: 100%;
  428. display: flex;
  429. align-items: center;
  430. justify-content: center;
  431. position: relative;
  432. z-index: 1;
  433. }
  434. .btn-content {
  435. padding: 0 32rpx;
  436. }
  437. .btn-icon {
  438. width: 32rpx;
  439. height: 32rpx;
  440. margin-right: 8rpx;
  441. opacity: 0.9;
  442. filter: brightness(0) saturate(100%) invert(45%) sepia(80%) saturate(2368%) hue-rotate(338deg) brightness(98%) contrast(98%);
  443. }
  444. .btn-text {
  445. font-size: 26rpx;
  446. color: #ff4d4f;
  447. font-weight: 500;
  448. }
  449. .share-btn {
  450. background: rgba(255, 77, 79, 0.9);
  451. }
  452. .share-content {
  453. display: flex;
  454. flex-direction: column;
  455. align-items: center;
  456. justify-content: center;
  457. }
  458. .share-text {
  459. font-size: 28rpx;
  460. color: #fff;
  461. line-height: 1;
  462. margin-bottom: 4rpx;
  463. font-weight: 500;
  464. }
  465. .commission-text {
  466. font-size: 20rpx;
  467. color: #fff;
  468. line-height: 1;
  469. background: rgba(255, 255, 255, 0.2);
  470. padding: 4rpx 12rpx;
  471. border-radius: 10rpx;
  472. }
  473. /* 按钮点击态 */
  474. .share-poster-btn:active {
  475. background: rgba(255, 77, 79, 0.12);
  476. transition: all 0.15s ease;
  477. }
  478. .share-btn:active {
  479. background: rgba(255, 77, 79, 1);
  480. transition: all 0.15s ease;
  481. }
  482. /* 收藏按钮样式 */
  483. .collect-btn {
  484. display: flex;
  485. flex-direction: column;
  486. align-items: center;
  487. justify-content: center;
  488. padding: 0 24rpx;
  489. }
  490. .collect-btn image {
  491. width: 44rpx;
  492. height: 44rpx;
  493. margin-bottom: 4rpx;
  494. }
  495. .collect-btn text {
  496. font-size: 20rpx;
  497. color: #666;
  498. }
  499. /* 返回顶部按钮 */
  500. .back-to-top {
  501. position: fixed;
  502. right: 30rpx;
  503. bottom: calc(140rpx + env(safe-area-inset-bottom));
  504. width: 80rpx;
  505. height: 80rpx;
  506. background: #fff;
  507. border-radius: 50%;
  508. box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.1);
  509. display: flex;
  510. align-items: center;
  511. justify-content: center;
  512. z-index: 99;
  513. transition: all 0.3s ease;
  514. }
  515. .back-to-top:active {
  516. transform: scale(0.95);
  517. }
  518. .top-icon {
  519. width: 40rpx;
  520. height: 40rpx;
  521. }
  522. @keyframes fadeInUp {
  523. from {
  524. opacity: 0;
  525. transform: translateY(20rpx);
  526. }
  527. to {
  528. opacity: 1;
  529. transform: translateY(0);
  530. }
  531. }
  532. .back-to-top {
  533. animation: fadeInUp 0.3s ease-out;
  534. }
  535. /* 分享弹窗 */
  536. .share-popup {
  537. position: fixed;
  538. left: 0;
  539. right: 0;
  540. top: 0;
  541. bottom: 0;
  542. z-index: 100;
  543. animation: fadeIn 0.3s ease;
  544. }
  545. .share-mask {
  546. position: absolute;
  547. left: 0;
  548. right: 0;
  549. top: 0;
  550. bottom: 0;
  551. background: rgba(0, 0, 0, 0.6);
  552. backdrop-filter: blur(4rpx);
  553. }
  554. .share-panel {
  555. position: absolute;
  556. left: 0;
  557. right: 0;
  558. bottom: 0;
  559. background: #fff;
  560. border-radius: 24rpx 24rpx 0 0;
  561. transform: translateY(0);
  562. animation: slideUp 0.3s ease;
  563. }
  564. .share-options {
  565. display: flex;
  566. justify-content: space-around;
  567. padding: 40rpx 60rpx;
  568. }
  569. .share-option {
  570. display: flex;
  571. flex-direction: column;
  572. align-items: center;
  573. background: none;
  574. border: none;
  575. padding: 0;
  576. margin: 0;
  577. line-height: 1.5;
  578. }
  579. .share-option::after {
  580. display: none;
  581. }
  582. .share-option image {
  583. width: 100rpx;
  584. height: 100rpx;
  585. margin-bottom: 16rpx;
  586. }
  587. .share-option text {
  588. font-size: 26rpx;
  589. color: #666;
  590. }
  591. .cancel-btn {
  592. height: 100rpx;
  593. line-height: 100rpx;
  594. text-align: center;
  595. font-size: 30rpx;
  596. color: #999;
  597. border-top: 1rpx solid #f5f5f5;
  598. }
  599. @keyframes fadeIn {
  600. from { opacity: 0; }
  601. to { opacity: 1; }
  602. }
  603. @keyframes slideUp {
  604. from { transform: translateY(100%); }
  605. to { transform: translateY(0); }
  606. }
  607. /* 海报模态框 */
  608. .poster-modal {
  609. position: fixed;
  610. top: 0;
  611. left: 0;
  612. right: 0;
  613. bottom: 0;
  614. z-index: 1000;
  615. }
  616. .modal-mask {
  617. position: absolute;
  618. top: 0;
  619. left: 0;
  620. right: 0;
  621. bottom: 0;
  622. background: rgba(0, 0, 0, 0.7);
  623. backdrop-filter: blur(4px);
  624. }
  625. .modal-content {
  626. position: absolute;
  627. left: 50%;
  628. top: 50%;
  629. transform: translate(-50%, -50%);
  630. width: 90%;
  631. max-width: 680rpx;
  632. background: #fff;
  633. border-radius: 24rpx;
  634. overflow: hidden;
  635. animation: modalPopIn 0.3s ease-out;
  636. }
  637. @keyframes modalPopIn {
  638. from {
  639. opacity: 0;
  640. transform: translate(-50%, -45%);
  641. }
  642. to {
  643. opacity: 1;
  644. transform: translate(-50%, -50%);
  645. }
  646. }
  647. .modal-header {
  648. position: relative;
  649. padding: 40rpx 30rpx;
  650. text-align: center;
  651. border-bottom: 1rpx solid #f5f5f5;
  652. }
  653. .modal-title {
  654. font-size: 34rpx;
  655. font-weight: 600;
  656. color: #333;
  657. }
  658. .close-btn {
  659. position: absolute;
  660. right: 20rpx;
  661. top: 50%;
  662. transform: translateY(-50%);
  663. padding: 20rpx;
  664. }
  665. .close-icon {
  666. width: 32rpx;
  667. height: 32rpx;
  668. }
  669. .template-scroll {
  670. max-height: 70vh;
  671. }
  672. .template-list {
  673. padding: 30rpx;
  674. }
  675. .template-item {
  676. margin-bottom: 30rpx;
  677. border-radius: 16rpx;
  678. background: #fff;
  679. overflow: hidden;
  680. transition: all 0.3s ease;
  681. }
  682. .template-item:last-child {
  683. margin-bottom: 0;
  684. }
  685. .template-preview-wrap {
  686. position: relative;
  687. width: 100%;
  688. height: 800rpx;
  689. background: #f8f9fa;
  690. }
  691. .template-preview {
  692. width: 100%;
  693. height: 100%;
  694. object-fit: cover;
  695. }
  696. .template-selected {
  697. position: absolute;
  698. top: 0;
  699. left: 0;
  700. right: 0;
  701. bottom: 0;
  702. background: rgba(255, 77, 79, 0.1);
  703. display: flex;
  704. align-items: center;
  705. justify-content: center;
  706. }
  707. .selected-icon {
  708. width: 80rpx;
  709. height: 80rpx;
  710. }
  711. .template-info {
  712. padding: 20rpx;
  713. background: #fff;
  714. }
  715. .template-name {
  716. font-size: 28rpx;
  717. font-weight: 500;
  718. color: #333;
  719. margin-bottom: 8rpx;
  720. }
  721. .template-desc {
  722. font-size: 24rpx;
  723. color: #999;
  724. }
  725. .modal-footer {
  726. padding: 30rpx;
  727. border-top: 1rpx solid #f5f5f5;
  728. }
  729. .confirm-btn {
  730. width: 100%;
  731. height: 88rpx;
  732. line-height: 88rpx;
  733. text-align: center;
  734. background: linear-gradient(135deg, #ff6b6b 0%, #ff4d4f 100%);
  735. color: #fff;
  736. font-size: 32rpx;
  737. font-weight: 500;
  738. border-radius: 44rpx;
  739. box-shadow: 0 4rpx 12rpx rgba(255, 77, 79, 0.2);
  740. }
  741. /* 分享按钮样式优化 */
  742. .share-btn {
  743. position: relative;
  744. display: flex;
  745. align-items: center;
  746. justify-content: center;
  747. }
  748. .commission-tag {
  749. position: absolute;
  750. right: -6rpx;
  751. bottom: -6rpx;
  752. background: linear-gradient(135deg, #ff6b6b 0%, #ff4d4f 100%);
  753. color: #fff;
  754. font-size: 20rpx;
  755. padding: 4rpx 12rpx;
  756. border-radius: 12rpx;
  757. transform: scale(0.9);
  758. box-shadow: 0 2rpx 8rpx rgba(255, 77, 79, 0.2);
  759. }
  760. /* 海报预览 */
  761. .poster-preview {
  762. position: fixed;
  763. top: 0;
  764. left: 0;
  765. right: 0;
  766. bottom: 0;
  767. z-index: 1000;
  768. display: flex;
  769. align-items: center;
  770. justify-content: center;
  771. }
  772. .preview-mask {
  773. position: absolute;
  774. top: 0;
  775. left: 0;
  776. right: 0;
  777. bottom: 0;
  778. background: rgba(0, 0, 0, 0.8);
  779. }
  780. .preview-content {
  781. position: relative;
  782. z-index: 1;
  783. width: 600rpx;
  784. background: #fff;
  785. border-radius: 24rpx;
  786. overflow: hidden;
  787. padding: 30rpx;
  788. }
  789. .poster-image {
  790. width: 100%;
  791. border-radius: 12rpx;
  792. }
  793. .preview-footer {
  794. margin-top: 30rpx;
  795. }
  796. .save-btn {
  797. background: #ff4d4f;
  798. color: #fff;
  799. border-radius: 44rpx;
  800. font-size: 30rpx;
  801. height: 88rpx;
  802. line-height: 88rpx;
  803. }
  804. .save-btn:active {
  805. opacity: 0.9;
  806. }