纯手写的代码,看别人熟练的写css简单是一种享受!
价格区块是商业网站上的一种设计元素,用于显示各种定价计划、订阅或价格比较。
在本例中,您可以在下面的预览图中看到一张卡片。 在此卡片中,共有 3 个包,您可以借助位于顶部的滑块选项卡查看每个包。 当你点击特定的选项卡时,特定的包会出现一个滑动动画,使这张卡片非常酷。
一、成果展示
二、代码
首先,创建一个名为 index.html 的 HTML 文件,并将给定的代码粘贴到您的 HTML 文件中。
index.html
<!DOCTYPE html> <!-- Coding By CodingNepal - youtube.com/codingnepal --> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Pure CSS Pricing Cards | CodingNepal</title> <link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"/> </head> <body> <div class="wrapper"> <input type="radio" name="slider" id="tab-1"> <input type="radio" name="slider" id="tab-2" checked> <input type="radio" name="slider" id="tab-3"> <header> <label for="tab-1" class="tab-1">Basic</label> <label for="tab-2" class="tab-2">Standard</label> <label for="tab-3" class="tab-3">Team</label> <div class="slider"></div> </header> <div class="card-area"> <div class="cards"> <div class="row row-1"> <div class="price-details"> <span class="price">19</span> <p>For beginner use</p> </div> <ul class="features"> <li><i class="fas fa-check"></i><span>100 GB Premium Bandwidth</span></li> <li><i class="fas fa-check"></i><span>FREE 50+ Installation Scripts WordPress Supported</span></li> <li><i class="fas fa-check"></i><span>One FREE Domain Registration .com and .np extensions only</span></li> <li><i class="fas fa-check"></i><span>Unlimited Email Accounts & Databases</span></li> </ul> </div> <div class="row"> <div class="price-details"> <span class="price">99</span> <p>For professional use</p> </div> <ul class="features"> <li><i class="fas fa-check"></i><span>Unlimited GB Premium Bandwidth</span></li> <li><i class="fas fa-check"></i><span>FREE 200+ Installation Scripts WordPress Supported</span></li> <li><i class="fas fa-check"></i><span>Five FREE Domain Registration .com and .np extensions only</span></li> <li><i class="fas fa-check"></i><span>Unlimited Email Accounts & Databases</span></li> </ul> </div> <div class="row"> <div class="price-details"> <span class="price">49</span> <p>For team collaboration</p> </div> <ul class="features"> <li><i class="fas fa-check"></i><span>200 GB Premium Bandwidth</span></li> <li><i class="fas fa-check"></i><span>FREE 100+ Installation Scripts WordPress Supported</span></li> <li><i class="fas fa-check"></i><span>Two FREE Domain Registration .com and .np extensions only</span></li> <li><i class="fas fa-check"></i><span>Unlimited Email Accounts & Databases</span></li> </ul> </div> </div> </div> <button>Choose plan</button> </div> </body> </html>
2.style.css
其次,创建一个名为 style.css 的 CSS 文件,并将给定的代码粘贴到您的 CSS 文件中。
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@700&family=Poppins:wght@400;500;600&display=swap'); *{ margin: 0; padding: 0; box-sizing: border-box; font-family: "Poppins", sans-serif; } body{ display: flex; align-items: center; justify-content: center; min-height: 100vh; background: linear-gradient(#D5A3FF 0%, #77A5F8 100%); } .wrapper{ width: 400px; background: #fff; border-radius: 16px; padding: 30px; box-shadow: 10px 10px 15px rgba(0,0,0,0.05); } .wrapper header{ height: 55px; display: flex; align-items: center; border: 1px solid #ccc; border-radius: 30px; position: relative; } header label{ height: 100%; z-index: 2; width: 30%; display: flex; cursor: pointer; font-size: 18px; position: relative; align-items: center; justify-content: center; transition: color 0.3s ease; } #tab-1:checked ~ header .tab-1, #tab-2:checked ~ header .tab-2, #tab-3:checked ~ header .tab-3{ color: #fff; } header label:nth-child(2){ width: 40%; } header .slider{ position: absolute; height: 85%; border-radius: inherit; background: linear-gradient(145deg, #D5A3FF 0%, #77A5F8 100%); transition: all 0.3s ease; } #tab-1:checked ~ header .slider{ left: 0%; width: 90px; transform: translateX(5%); } #tab-2:checked ~ header .slider{ left: 50%; width: 120px; transform: translateX(-50%); } #tab-3:checked ~ header .slider{ left: 100%; width: 95px; transform: translateX(-105%); } .wrapper input[type="radio"]{ display: none; } .card-area{ overflow: hidden; } .card-area .cards{ display: flex; width: 300%; } .cards .row{ width: 33.4%; } .cards .row-1{ transition: all 0.3s ease; } #tab-1:checked ~ .card-area .cards .row-1{ margin-left: 0%; } #tab-2:checked ~ .card-area .cards .row-1{ margin-left: -33.4%; } #tab-3:checked ~ .card-area .cards .row-1{ margin-left: -66.8%; } .row .price-details{ margin: 20px 0; text-align: center; padding-bottom: 25px; border-bottom: 1px solid #e6e6e6; } .price-details .price{ font-size: 65px; font-weight: 600; position: relative; font-family: 'Noto Sans', sans-serif; } .price-details .price::before, .price-details .price::after{ position: absolute; font-weight: 400; font-family: "Poppins", sans-serif; } .price-details .price::before{ content: "$"; left: -13px; top: 17px; font-size: 20px; } .price-details .price::after{ content: "/mon"; right: -33px; bottom: 17px; font-size: 13px; } .price-details p{ font-size: 18px; margin-top: 5px; } .row .features li{ display: flex; font-size: 15px; list-style: none; margin-bottom: 10px; align-items: center; } .features li i{ background: linear-gradient(#D5A3FF 0%, #77A5F8 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .features li span{ margin-left: 10px; } .wrapper button{ width: 100%; border-radius: 25px; border: none; outline: none; height: 50px; font-size: 18px; color: #fff; cursor: pointer; margin-top: 20px; background: linear-gradient(145deg, #D5A3FF 0%, #77A5F8 100%); transition: transform 0.3s ease; } .wrapper button:hover{ transform: scale(0.98); }
三、知识点
1.button 通过.wrapper button来控制。在css中不能直接用.button
width: 100%;
height: 50px;
border-radius: 25px;
border: none;
outline: none;应该是边框
font-size: 18px;
color: #fff; 边框里面字体的颜色
cursor: pointer;
margin-top: 20px;
background: linear-gradient(145deg, #D5A3FF 0%, #77A5F8 100%); 渐变
transition: transform 0.3s ease; 过渡
2.动画如何实现的?
使用了 HTML 类型的单选按钮和
参考:
https://www.youtube.com/watch?v=REsqRd5f9MM
https://www.codingnepalweb.com/pricing-card-with-sliding-animation-css/