爬行的蜗牛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: golang Linux PHP
查看: 95|回复: 0

HTML+CSS实现“纯 CSS 假日主题折叠卡”

[复制链接]

134

主题

41

回帖

1031

积分

管理员

积分
1031
发表于 2024-11-23 19:11:51 | 显示全部楼层 |阅读模式
111.gif

这些小卡片更像按钮,但它们的悬停效果非常独特。每张卡片在悬停时会“展开”,显示出视频、文字和号召性用语。尽管卡片很小,但却能够容纳大量内容,同时界面响应速度也非常快。
HTML
  1. <body>
  2.     <main class="main">
  3.         
  4.         <section class="card-area">

  5.             <!-- Card: City -->
  6.             <section class="card-section">
  7.                 <div class="card">
  8.                     <div class="flip-card">
  9.                         <div class="flip-card__container">
  10.                             <div class="card-front">
  11.                                 <div class="card-front__tp card-front__tp--city">
  12.                                     <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
  13.                                     viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve" class="card-front__icon">
  14.                                <g>
  15.                                    <path d="M49.7,22c-1.1,0-2,0.9-2,2v32.2c0,1.1,0.9,2,2,2s2-0.9,2-2V24C51.7,22.9,50.8,22,49.7,22z"/>
  16.                                    <path d="M13,29.5c1.1,0,2-0.9,2-2s-0.9-2-2-2H5.7v-3h20.8c1.1,0,2-0.9,2-2s-0.9-2-2-2H5.7v-3h20.8c1.1,0,2-0.9,2-2s-0.9-2-2-2H5.7
  17.                                        V7.1h24.8v15.3c0,1.1,0.9,2,2,2s2-0.9,2-2V5.1c0-1.1-0.9-2-2-2H3.7c-1.1,0-2,0.9-2,2v51c0,1.1,0.9,2,2,2s2-0.9,2-2V36.5H13
  18.                                        c1.1,0,2-0.9,2-2s-0.9-2-2-2H5.7v-3H13z"/>
  19.                                    <path d="M58,11.9c0-0.1,0-0.1,0-0.2c0-0.1,0-0.1-0.1-0.2c0-0.1,0-0.1-0.1-0.2c0-0.1-0.1-0.1-0.1-0.2c0,0,0-0.1-0.1-0.1c0,0,0,0,0,0
  20.                                        c0-0.1-0.1-0.1-0.1-0.2c0,0-0.1-0.1-0.1-0.1c0,0-0.1-0.1-0.1-0.1c-0.1,0-0.1-0.1-0.2-0.1c0,0-0.1-0.1-0.2-0.1
  21.                                        c-0.1,0-0.1-0.1-0.2-0.1c-0.1,0-0.1,0-0.2-0.1c-0.1,0-0.1,0-0.2-0.1c0,0-0.1,0-0.1,0c-0.1,0-0.2,0-0.2,0c0,0,0,0,0,0
  22.                                        c0,0-0.1,0-0.1,0c-0.1,0-0.2,0-0.2,0c-0.1,0-0.1,0-0.2,0c-0.1,0-0.1,0-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c0,0-0.1,0-0.1,0.1l-12.6,7.8
  23.                                        c0,0,0,0,0,0c-0.1,0-0.1,0.1-0.2,0.1c0,0-0.1,0.1-0.1,0.1c0,0-0.1,0.1-0.1,0.1c0,0-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2
  24.                                        c0,0.1-0.1,0.1-0.1,0.2c0,0.1,0,0.1-0.1,0.2c0,0.1,0,0.1-0.1,0.2c0,0.1,0,0.1,0,0.2c0,0.1,0,0.1,0,0.2c0,0,0,0,0,0v5.4H22.1
  25.                                        c-1.1,0-2,0.9-2,2v28.9c0,1.1,0.9,2,2,2s2-0.9,2-2V29.3h17.3v26.9c0,1.1,0.9,2,2,2s2-0.9,2-2V21l8.6-5.3v40.5c0,1.1,0.9,2,2,2
  26.                                        s2-0.9,2-2V12.1C58,12,58,12,58,11.9z"/>
  27.                                    <path d="M28,31L28,31c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S29.1,31,28,31z"/>
  28.                                    <path d="M33.5,31L33.5,31c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S34.6,31,33.5,31z"/>
  29.                                    <path d="M28,36L28,36c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S29.1,36,28,36z"/>
  30.                                    <path d="M33.5,36L33.5,36c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S34.6,36,33.5,36z"/>
  31.                                </g>
  32.                                </svg>

  33.                                <h2 class="card-front__heading">
  34.                                 City break
  35.                             </h2>
  36.                             <p class="card-front__text-price">
  37.                                 From £29
  38.                             </p>
  39.                                 </div>

  40.                                 <div class="card-front__bt">
  41.                                     <p class="card-front__text-view card-front__text-view--city">
  42.                                         View me
  43.                                     </p>
  44.                                 </div>
  45.                             </div>
  46.                             <div class="card-back">
  47.                                 <video class="video__container" autoplay muted loop>
  48.                                     <source class="video__media" src="https://player.vimeo.com/external/370331493.sd.mp4?s=e90dcaba73c19e0e36f03406b47bbd6992dd6c1c&profile_id=139&oauth2_token_id=57447761" type="video/mp4">
  49.                                 </video>
  50.                             </div>
  51.                         </div>
  52.                     </div>

  53.                     <div class="inside-page">
  54.                         <div class="inside-page__container">
  55.                             <h3 class="inside-page__heading inside-page__heading--city">
  56.                                 For urban lovers
  57.                             </h3>
  58.                             <p class="inside-page__text">
  59.                                As cities never sleep, there are always something going on, no matter what time!
  60.                             </p>
  61.                             <a href="#" class="inside-page__btn inside-page__btn--city">View deals</a>
  62.                         </div>
  63.                     </div>
  64.                 </div>
  65.             </section>

  66.             <!-- Card: Ski -->
  67.             <section class="card-section">
  68.                 <div class="card">
  69.                     <div class="flip-card">
  70.                         <div class="flip-card__container">
  71.                             <div class="card-front">
  72.                                 <div class="card-front__tp card-front__tp--ski">
  73.                                     <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
  74.                                     viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve" class="card-front__icon">
  75.                                <g>
  76.                                    <path d="M58.8,54.5L38.5,19.3c-0.4-0.6-1-1-1.7-1s-1.4,0.4-1.7,1L14.8,54.5c-0.4,0.6-0.4,1.4,0,2c0.4,0.6,1,1,1.7,1h40.6
  77.                                        c0.7,0,1.4-0.4,1.7-1C59.2,55.9,59.2,55.1,58.8,54.5z M36.8,24.3l5.8,10c-0.5-0.2-1.1-0.3-1.7-0.3c-2.5,0-3.7,1.5-4.6,2.5
  78.                                        c-0.7,0.9-1,1.1-1.5,1.1s-0.8-0.2-1.5-1.1c-0.6-0.7-1.3-1.5-2.4-2.1L36.8,24.3z M20,53.5l8.9-15.4c0.5,0,0.7,0.3,1.4,1.1
  79.                                        c0.8,1,2.1,2.5,4.6,2.5s3.7-1.5,4.6-2.5c0.7-0.9,1-1.1,1.5-1.1c0.5,0,0.8,0.2,1.5,1.1c0.8,1,2.1,2.5,4.5,2.5l6.8,11.8H20z"/>
  80.                                    <path d="M14.7,51.5c1.1,0,2-0.9,2-2s-0.9-2-2-2H6.4l9.1-15.7c0.6,0.6,1.5,1.3,2.9,1.3c1.8,0,2.8-1.2,3.3-1.8
  81.                                        c0.1-0.1,0.2-0.2,0.3-0.3c0.1,0.1,0.2,0.2,0.3,0.3c0.5,0.6,1.5,1.8,3.3,1.8c1.1,0,2-0.9,2-2c0-1.1-0.9-2-1.9-2
  82.                                        c-0.1-0.1-0.2-0.2-0.3-0.4c-0.5-0.6-1.5-1.8-3.3-1.8c-1.8,0-2.8,1.2-3.3,1.8c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1-0.1-0.2-0.2-0.3-0.3
  83.                                        c-0.1-0.2-0.3-0.4-0.5-0.6l5.7-9.9l3.8,6.6c0.6,1,1.8,1.3,2.7,0.7c1-0.6,1.3-1.8,0.7-2.7L25,13.2c-0.4-0.6-1-1-1.7-1
  84.                                        s-1.4,0.4-1.7,1l-8.4,14.5c-0.1,0.1-0.2,0.3-0.3,0.4L1.2,48.5c0,0,0,0.1,0,0.1c0,0.1-0.1,0.1-0.1,0.2c0,0.1,0,0.1-0.1,0.2
  85.                                        c0,0.1,0,0.1,0,0.2c0,0.1,0,0.1,0,0.2c0,0,0,0.1,0,0.1c0,0,0,0,0,0.1c0,0.1,0,0.1,0,0.2c0,0.1,0,0.1,0,0.2C1,50,1,50,1,50.1
  86.                                        c0,0.1,0,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2c0,0,0.1,0.1,0.1,0.1c0,0,0.1,0.1,0.1,0.1
  87.                                        c0.1,0,0.1,0.1,0.2,0.1c0,0,0,0,0.1,0c0,0,0.1,0,0.1,0c0.1,0.1,0.2,0.1,0.3,0.1c0,0,0.1,0,0.1,0c0.1,0,0.3,0.1,0.5,0.1c0,0,0,0,0,0
  88.                                        c0,0,0,0,0,0c0,0,0,0,0,0H14.7z"/>
  89.                                    <path d="M40.7,12.3h3.1l-2.2,2.2c-0.6,0.6-0.6,1.5,0,2.1c0.3,0.3,0.7,0.4,1.1,0.4s0.8-0.1,1.1-0.4l2.2-2.2v3.1
  90.                                        c0,0.8,0.7,1.5,1.5,1.5s1.5-0.7,1.5-1.5v-3.1l2.2,2.2c0.3,0.3,0.7,0.4,1.1,0.4s0.8-0.1,1.1-0.4c0.6-0.6,0.6-1.5,0-2.1l-2.2-2.2h3.1
  91.                                        c0.8,0,1.5-0.7,1.5-1.5s-0.7-1.5-1.5-1.5h-3.1l2.2-2.2c0.6-0.6,0.6-1.5,0-2.1c-0.6-0.6-1.5-0.6-2.1,0L49,7.2V4
  92.                                        c0-0.8-0.7-1.5-1.5-1.5S46,3.2,46,4v3.1l-2.2-2.2c-0.6-0.6-1.5-0.6-2.1,0c-0.6,0.6-0.6,1.5,0,2.1l2.2,2.2h-3.1
  93.                                        c-0.8,0-1.5,0.7-1.5,1.5S39.9,12.3,40.7,12.3z"/>
  94.                                </g>
  95.                                </svg>
  96.                                                <h2 class="card-front__heading">
  97.                                                    Ski trip
  98.                                                </h2>
  99.                                                <p class="card-front__text-price">
  100.                                                    From £199
  101.                                                </p>
  102.                                 </div>

  103.                                 <div class="card-front__bt">
  104.                                     <p class="card-front__text-view card-front__text-view--ski">
  105.                                         View me
  106.                                     </p>
  107.                                 </div>
  108.                             </div>

  109.                             <div class="card-back">
  110.                                 <video class="video__container" autoplay muted loop>
  111.                                     <source class="video__media" src="https://player.vimeo.com/external/195913085.sd.mp4?s=7c12f7a83de62a8900fd2ae049297070b9bc8a54&profile_id=164&oauth2_token_id=574477611" type="video/mp4">
  112.                                 </video>
  113.                             </div>
  114.                         </div>
  115.                     </div>

  116.                     <div class="inside-page">
  117.                         <div class="inside-page__container">
  118.                             <h3 class="inside-page__heading inside-page__heading--ski">
  119.                                 For snow lovers
  120.                             </h3>
  121.                             <p class="inside-page__text">
  122.                                Love snow? Why not take up exciting ski-in sessions and hit the slope?
  123.                             </p>
  124.                             <a href="#" class="inside-page__btn inside-page__btn--ski">View deals</a>
  125.                         </div>
  126.                     </div>
  127.                 </div>
  128.             </section>

  129.             <!-- Card: Beach -->
  130.             <section class="card-section">
  131.                 <div class="card">
  132.                     <div class="flip-card">
  133.                         <div class="flip-card__container">
  134.                             <div class="card-front">
  135.                                 <div class="card-front__tp card-front__tp--beach">
  136.                                     <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
  137.                                     viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve" class="card-front__icon">
  138.                                <path d="M57.2,28h-7.4c-0.4-4-2-7.7-4.4-10.6l3.2-3.2c0.8-0.8,0.8-2,0-2.8c-0.8-0.8-2-0.8-2.8,0l-3.2,3.2c-3-2.4-6.6-4-10.6-4.4V2.8
  139.                                    c0-1.1-0.9-2-2-2s-2,0.9-2,2v7.4c-4,0.4-7.7,2-10.6,4.4l-3.2-3.2c-0.8-0.8-2-0.8-2.8,0c-0.8,0.8-0.8,2,0,2.8l3.2,3.2
  140.                                    c-2.4,3-4,6.6-4.4,10.6H2.8c-1.1,0-2,0.9-2,2s0.9,2,2,2h7.4c0.4,4,2,7.7,4.4,10.6l-3.2,3.2c-0.8,0.8-0.8,2,0,2.8
  141.                                    c0.4,0.4,0.9,0.6,1.4,0.6s1-0.2,1.4-0.6l3.2-3.2c3,2.4,6.6,4,10.6,4.4v7.4c0,1.1,0.9,2,2,2s2-0.9,2-2v-7.4c4-0.4,7.7-2,10.6-4.4
  142.                                    l3.2,3.2c0.4,0.4,0.9,0.6,1.4,0.6s1-0.2,1.4-0.6c0.8-0.8,0.8-2,0-2.8l-3.2-3.2c2.4-3,4-6.6,4.4-10.6h7.4c1.1,0,2-0.9,2-2
  143.                                    S58.3,28,57.2,28z M30,45.9c-8.8,0-15.9-7.2-15.9-15.9c0-8.8,7.2-15.9,15.9-15.9c8.8,0,15.9,7.2,15.9,15.9
  144.                                    C45.9,38.8,38.8,45.9,30,45.9z"/>
  145.                                </svg>
  146.                               
  147.                                                <h2 class="card-front__heading">
  148.                                                    Beach time
  149.                                                </h2>
  150.                                                <p class="card-front__text-price">
  151.                                                    From £229
  152.                                                </p>
  153.                                 </div>

  154.                                 <div class="card-front__bt">
  155.                                     <p class="card-front__text-view card-front__text-view--beach">
  156.                                         View me
  157.                                     </p>
  158.                                 </div>
  159.                             </div>
  160.                             <div class="card-back">
  161.                                 <video class="video__container" autoplay muted loop>
  162.                                     <source class="video__media" src="https://player.vimeo.com/external/332588783.sd.mp4?s=cab1817146dd72daa6346a1583cc1ec4d9e677c7&profile_id=139&oauth2_token_id=57447761" type="video/mp4">
  163.                                 </video>
  164.                             </div>
  165.                         </div>
  166.                     </div>

  167.                     <div class="inside-page">
  168.                         <div class="inside-page__container">
  169.                             <h3 class="inside-page__heading inside-page__heading--beach">
  170.                                 For sun lovers
  171.                             </h3>
  172.                             <p class="inside-page__text">
  173.                                Relax and get sun-kissed tan in the sea or take up surfting for an adventure!
  174.                             </p>
  175.                             <a href="#" class="inside-page__btn inside-page__btn--beach">View deals</a>
  176.                         </div>
  177.                     </div>
  178.                 </div>
  179.             </section>

  180.             <!-- Card: Camping -->
  181.             <section class="card-section">
  182.                 <div class="card">
  183.                     <div class="flip-card">
  184.                         <div class="flip-card__container">
  185.                             <div class="card-front">
  186.                                 <div class="card-front__tp card-front__tp--camping">
  187.                                     <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
  188.                                     viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve" class="card-front__icon">
  189.                                <path d="M57,52.1c0-0.4-0.1-0.7-0.3-1.1l-6.3-10.8L32.4,9l2.3-4c0.6-1,0.2-2.2-0.7-2.7c-1-0.6-2.2-0.2-2.7,0.7L30,5.2L28.7,3
  190.                                    c-0.6-1-1.8-1.3-2.7-0.7c-1,0.6-1.3,1.8-0.7,2.7l2.3,4l-18,31.1L3.3,51C3.1,51.3,3,51.7,3,52.1c0,0.4,0.1,0.7,0.3,1
  191.                                    c0.4,0.6,1,1,1.7,1h50c0.7,0,1.4-0.4,1.7-1C56.9,52.8,57,52.4,57,52.1z M34.7,49.8C34.2,50,32.1,50,30,50s-4.2,0-4.7-0.2
  192.                                    c-0.2-0.5-0.2-2.1-0.2-3.6l0-4.3c0-2.7,2.2-4.9,4.9-4.9s4.9,2.2,4.9,4.9l0,4.3C34.9,47.7,34.9,49.3,34.7,49.8z M13.1,42.1L28,16.5
  193.                                    v16.7c-3.9,0.9-6.9,4.4-6.9,8.6l0,4.3c0,1.7,0,2.9,0.2,4H8.5L13.1,42.1z M38.7,50.1c0.2-1,0.2-2.3,0.2-4l0-4.3
  194.                                    c0-4.2-2.9-7.7-6.9-8.6V16.5l15,25.7l4.6,7.9H38.7z"/>
  195.                                </svg>
  196.                                                <h2 class="card-front__heading">
  197.                                                    Camping trek
  198.                                                </h2>
  199.                                                <p class="card-front__text-price">
  200.                                                    From £129
  201.                                                </p>
  202.                                 </div>

  203.                                 <div class="card-front__bt">
  204.                                     <p class="card-front__text-view card-front__text-view--camping">
  205.                                         View me
  206.                                     </p>
  207.                                 </div>
  208.                             </div>
  209.                             <div class="card-back">
  210.                                 <video class="video__container" autoplay muted loop>
  211.                                     <source class="video__media" src="https://player.vimeo.com/external/180185916.sd.mp4?s=c893e4770f87b00e0d6b5a1de138b01b02aaa085&profile_id=164&oauth2_token_id=57447761" type="video/mp4">
  212.                                 </video>
  213.                             </div>
  214.                         </div>
  215.                     </div>

  216.                     <div class="inside-page">
  217.                         <div class="inside-page__container">
  218.                             <h3 class="inside-page__heading inside-page__heading--camping">
  219.                                 For nature lovers
  220.                             </h3>
  221.                             <p class="inside-page__text">
  222.                                Get your boots on for some hiking and explore all the beautiful scenery of nature!
  223.                             </p>
  224.                             <a href="#" class="inside-page__btn inside-page__btn--camping">View deals</a>
  225.                         </div>
  226.                     </div>
  227.                 </div>
  228.             </section>
  229.         </section>
  230.         <footer class="footer">
  231.             <p class="footer-text">&copy; 2021 Created by Maza designDev</p>
  232.           </footer>
  233.     </main>
  234. </body>
  235. </html>
复制代码
CSS
  1. /* CSS reset */
  2. *,
  3. *::after,
  4. *::before {
  5.   box-sizing: inherit;
  6.   margin: 0;
  7.   padding: 0;
  8. }

  9. html { font-size: 62.5%; }

  10. body {
  11.   box-sizing: border-box;
  12.   font-family: 'Open Sans', sans-serif;
  13.   position: relative;
  14. }

  15. /* Typography =======================*/

  16. /* Headings */

  17. /* Main heading for card's front cover */
  18. .card-front__heading {
  19.   font-size: 1.5rem;
  20.   margin-top: .25rem;
  21. }

  22. /* Main heading for inside page */
  23. .inside-page__heading {
  24.   padding-bottom: 1rem;
  25.   width: 100%;
  26. }

  27. /* Mixed */

  28. /* For both inside page's main heading and 'view me' text on card front cover */
  29. .inside-page__heading,
  30. .card-front__text-view {
  31.   font-size: 1.3rem;
  32.   font-weight: 800;
  33.   margin-top: .2rem;
  34. }

  35. .inside-page__heading--city,
  36. .card-front__text-view--city { color: #ff62b2; }

  37. .inside-page__heading--ski,
  38. .card-front__text-view--ski { color: #2aaac1; }

  39. .inside-page__heading--beach,
  40. .card-front__text-view--beach { color: #fa7f67; }

  41. .inside-page__heading--camping,
  42. .card-front__text-view--camping { color: #00b97c; }

  43. /* Front cover */

  44. .card-front__tp { color: #fafbfa; }

  45. /* For pricing text on card front cover */
  46. .card-front__text-price {
  47.   font-size: 1.2rem;
  48.   margin-top: -.2rem;
  49. }

  50. /* Back cover */

  51. /* For inside page's body text */
  52. .inside-page__text {
  53.   color: #333;
  54. }

  55. /* Icons ===========================================*/

  56. .card-front__icon {
  57.   fill: #fafbfa;
  58.   font-size: 3vw;
  59.   height: 3.25rem;
  60.   margin-top: -.5rem;
  61.   width: 3.25rem;
  62. }

  63. /* Buttons =================================================*/

  64. .inside-page__btn {
  65.   background-color: transparent;
  66.   border: 3px solid;
  67.   border-radius: .5rem;
  68.   font-size: 1.2rem;
  69.   font-weight: 600;
  70.   margin-top: 2rem;
  71.   overflow: hidden;
  72.   padding: .7rem .75rem;
  73.   position: relative;
  74.   text-decoration: none;
  75.   transition: all .3s ease;
  76.   width: 90%;
  77.   z-index: 10;
  78. }

  79. .inside-page__btn::before {
  80.   content: "";
  81.   height: 100%;
  82.   left: 0;
  83.   position: absolute;
  84.   top: 0;
  85.   transform: scaleY(0);
  86.   transition: all .3s ease;
  87.   width: 100%;
  88.   z-index: -1;
  89. }

  90. .inside-page__btn--city {
  91.   border-color: #ff40a1;
  92.   color: #ff40a1;
  93. }

  94. .inside-page__btn--city::before {
  95.   background-color: #ff40a1;
  96. }

  97. .inside-page__btn--ski {
  98.   border-color: #279eb2;
  99.   color: #279eb2;
  100. }

  101. .inside-page__btn--ski::before {
  102.   background-color: #279eb2;
  103. }

  104. .inside-page__btn--beach {
  105.   border-color: #fa7f67;
  106.   color: #fa7f67;
  107. }

  108. .inside-page__btn--beach::before {
  109.   background-color: #fa7f67;
  110. }

  111. .inside-page__btn--camping {
  112.   border-color: #00b97d;
  113.   color: #00b97d;
  114. }

  115. .inside-page__btn--camping::before {
  116.   background-color: #00b97d;
  117. }

  118. .inside-page__btn:hover {
  119.   color: #fafbfa;
  120. }

  121. .inside-page__btn:hover::before {
  122.   transform: scaleY(1);
  123. }

  124. /* Layout Structure=========================================*/

  125. .main {
  126.   background: linear-gradient(
  127.     to bottom right,
  128.     #eee8dd,
  129.     #e3d9c6
  130.   );
  131.   display: flex;
  132.   flex-direction: column;
  133.   justify-content: center;
  134.   height: 100vh;
  135.   width: 100%;
  136. }

  137. /* Container to hold all cards in one place */
  138. .card-area {
  139.   align-items: center;
  140.   display: flex;
  141.   flex-wrap: nowrap;
  142.   height: 100%;
  143.   justify-content: space-evenly;
  144.   padding: 1rem;
  145. }

  146. /* Card ============================================*/

  147. /* Area to hold an individual card */
  148. .card-section {
  149.   align-items: center;
  150.   display: flex;
  151.   height: 100%;
  152.   justify-content: center;
  153.   width: 100%;
  154. }

  155. /* A container to hold the flip card and the inside page */
  156. .card {
  157.   background-color: rgba(0,0,0, .05);
  158.   box-shadow: -.1rem 1.7rem 6.6rem -3.2rem rgba(0,0,0,0.5);
  159.   height: 15rem;
  160.   position: relative;
  161.   transition: all 1s ease;
  162.   width: 15rem;
  163. }

  164. /* Flip card - covering both the front and inside front page */

  165. /* An outer container to hold the flip card. This excludes the inside page */
  166. .flip-card {
  167.   height: 15rem;
  168.   perspective: 100rem;
  169.   position: absolute;
  170.   right: 0;
  171.   transition: all 1s ease;
  172.   visibility: hidden;
  173.   width: 15rem;
  174.   z-index: 100;
  175. }

  176. /* The outer container's visibility is set to hidden. This is to make everything within the container NOT set to hidden  */
  177. /* This is done so content in the inside page can be selected */
  178. .flip-card > * {
  179.   visibility: visible;
  180. }

  181. /* An inner container to hold the flip card. This excludes the inside page */
  182. .flip-card__container {
  183.   height: 100%;
  184.   position: absolute;
  185.   right: 0;
  186.   transform-origin: left;
  187.   transform-style: preserve-3d;
  188.   transition: all 1s ease;
  189.   width: 100%;
  190. }

  191. .card-front,
  192. .card-back {
  193.   backface-visibility: hidden;
  194.   height: 100%;
  195.   left: 0;
  196.   position: absolute;
  197.   top: 0;
  198.   width: 100%;
  199. }

  200. /* Styling for the front side of the flip card */

  201. /* container for the front side */
  202. .card-front {
  203.   background-color: #fafbfa;
  204.   height: 15rem;
  205.   width: 15rem;
  206. }

  207. /* Front side's top section */
  208. .card-front__tp {
  209.   align-items: center;
  210.   clip-path: polygon(0 0, 100% 0, 100% 90%, 57% 90%, 50% 100%, 43% 90%, 0 90%);
  211.   display: flex;
  212.   flex-direction: column;
  213.   height: 12rem;
  214.   justify-content: center;
  215.   padding: .75rem;
  216. }

  217. .card-front__tp--city {
  218.   background: linear-gradient(
  219.     to bottom,
  220.     #ff73b9,
  221.     #ff40a1
  222.   );
  223. }

  224. .card-front__tp--ski {
  225.   background: linear-gradient(
  226.     to bottom,
  227.     #47c2d7,
  228.     #279eb2
  229.   );
  230. }

  231. .card-front__tp--beach {
  232.   background: linear-gradient(
  233.     to bottom,
  234.     #fb9b88,
  235.     #f86647
  236.   );
  237. }

  238. .card-front__tp--camping {
  239.   background: linear-gradient(
  240.     to bottom,
  241.     #00db93,
  242.     #00b97d
  243.   );
  244. }

  245. /* Front card's bottom section */
  246. .card-front__bt {
  247.   align-items: center;
  248.   display: flex;
  249.   justify-content: center;
  250. }

  251. /* Styling for the back side of the flip card */

  252. .card-back {
  253.   background-color: #fafbfa;
  254.   transform: rotateY(180deg);
  255. }

  256. /* Specifically targeting the <video> element */
  257. .video__container {
  258.   clip-path: polygon(0% 0%, 100% 0%, 90% 50%, 100% 100%, 0% 100%);
  259.   height: auto;
  260.   min-height: 100%;
  261.   object-fit: cover;
  262.   width: 100%;
  263. }

  264. /* Inside page */

  265. .inside-page {
  266.   background-color: #fafbfa;
  267.   box-shadow: inset 20rem 0px 5rem -2.5rem rgba(0,0,0,0.25);
  268.   height: 100%;
  269.   padding: 1rem;
  270.   position: absolute;
  271.   right: 0;
  272.   transition: all 1s ease;
  273.   width: 15rem;
  274.   z-index: 1;
  275. }

  276. .inside-page__container {
  277.   align-items: center;
  278.   display: flex;
  279.   flex-direction: column;
  280.   height: 100%;
  281.   text-align: center;
  282.   width: 100%;
  283. }

  284. /* Functionality ====================================*/

  285. /* This is to keep the card centered (within its container) when opened */
  286. .card:hover {
  287.   box-shadow:
  288.   -.1rem 1.7rem 6.6rem -3.2rem rgba(0,0,0,0.75);
  289.   width: 30rem;
  290. }

  291. /* When the card is hovered, the flip card container will rotate */
  292. .card:hover .flip-card__container {
  293.   transform: rotateY(-180deg);
  294. }

  295. /* When the card is hovered, the shadow on the inside page will shrink to the left */
  296. .card:hover .inside-page {
  297.   box-shadow: inset 1rem 0px 5rem -2.5rem rgba(0,0,0,0.1);
  298. }

  299. /* Footer ====================================*/

  300. .footer {
  301.   background-color: #333;
  302.    margin-top: 3rem;
  303.   padding: 1rem 0;
  304.   width: 100%;
  305. }

  306. .footer-text {
  307.   color: #fff;
  308.   font-size: 1.2rem;
  309.   text-align: center;
  310. }
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表