电商节双十一、双十二经常需要搞促销,今天我们就来介绍几款通过css实现的促销banner样式,如下图所示:
<html> <head> <meta charset="UTF-8"> <link rel="apple-touch-icon" type="image/png" href="https://cpwebassets.codepen.io/assets/favicon/apple-touch-icon-5ae1a0698dcc2402e9712f7d01ed509a57814f994c660df9f7a952f3060705ee.png"> <meta name="apple-mobile-web-app-title" content="CodePen"> <link rel="shortcut icon" type="image/x-icon" href="https://cpwebassets.codepen.io/assets/favicon/favicon-aec34940fbc1a6e787974dcd360f2c6b63348d4b1f4e06c77743096d55480f33.ico"> <link rel="mask-icon" type="image/x-icon" href="https://cpwebassets.codepen.io/assets/favicon/logo-pin-8f3771b1072e3c38bd662872f6b673a722f4b3ca2421637d5596661b4e2132cc.svg" color="#111"> <title>css实现多种促销banner样式</title> <style> @import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;800&display=swap"); :root { --color-black: black; --color-white: white; --color-yellow: yellow; --color-grey: #e8e8e8; --time: 4s; --time-s: 0.3s; --vw: 60vw; } @media (max-width: 768px) { :root { --size-height: 54px; } } * { box-sizing: border-box; } a { text-decoration: none; color: white; } html { font-size: 1vw; } @media (max-width: 768px) { html { font-size: 1.6vw; } } body { font-family: "Montserrat", sans-serif; min-height: 100vh; background-color: var(--color-grey); color: #fff; font-size: 3rem; line-height: 1; font-weight: 300; display: flex; justify-content: center; align-items: center; margin: 0; } .container { width: 100%; margin: 0 auto; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; } .box { cursor: pointer; position: relative; display: inline-block; box-sizing: border-box; width: 30vw; padding-bottom: 30vw; margin: 1vw; background-color: #7f72d2; background-color: var(--color-yellow); text-transform: uppercase; font-weight: 800; overflow: hidden; } @media (max-width: 768px) { .box { width: 46vw; padding-bottom: 46vw; } } .box:hover .box__btn { background-color: var(--color-yellow); color: var(--color-black); } .box:hover .box__background { animation-play-state: paused; } .box__title { transition: all var(--time-s); transform: scale(1) translateY(0); } .box__btn { line-height: 4vw; text-align: center; max-width: 80%; padding: 0 2vw; font-size: 1.8rem; margin-top: 1vw; transition: all var(--time-s); transform: scale(1); background-color: var(--color-black); color: var(--color-white); border: 1px solid var(--color-black); } .box__background { position: absolute; top: 0; left: 0; width: 100%; height: auto; } .box__content { position: absolute; top: 0; left: 0; right: 0; bottom: 0; padding: 2vw; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; align-content: center; } .box__col { width: 50%; height: 100%; display: flex; flex-direction: column; align-content: center; align-items: center; justify-content: center; } .box__text-line { position: absolute; font-size: 1.5rem; text-align: center; left: 3vw; right: 50%; } .box__text-line--top { top: 0; } .box__text-line--bottom { bottom: 0; } .box__text-line span { line-height: 3vw; padding: 0 1.5vw; background-color: var(--color-yellow); } .box__text-svg { transform-origin: 50% 50%; animation: rotate normal infinite calc(var(--time-s) * 30) linear; } .box__text-svg--reverse { animation: rotateReverse normal infinite calc(var(--time-s) * 50) linear; } .box--1, .box--4 { width: 60vw; } @media (max-width: 768px) { .box--1, .box--4 { width: 94vw; padding-bottom: 46vw; } } .box--1 { background-color: var(--color-white); color: var(--color-black); } .box--1 .box__background { outline: 3vw solid var(--color-yellow); outline-offset: -3vw; height: 100%; } .box--1 .box__background:before { content: ""; position: absolute; border: 1px solid var(--color-black); left: 1.5vw; right: 1.5vw; top: 1.5vw; bottom: 1.5vw; } .box--1 .box__content { padding: 3vw; } .box--1 .box__title { text-align: center; font-size: 5rem; } .box--1 .box__title span { display: block; font-size: 4rem; } .box--2 { font-size: 1.5rem; } .box--2 .box__background { top: -50%; left: -50%; width: 200%; height: auto; font-size: 24px; } .box--2 .box__content { color: var(--color-black); justify-content: center; align-items: center; align-content: center; flex-direction: column; } .box--2 .box__content span { display: block; font-size: 8rem; } .box--3 .box__background { top: -20%; left: -20%; width: 140%; height: auto; font-size: 30px; } .box--3 .box__content { font-size: 1.5rem; color: var(--color-white); justify-content: center; align-items: center; align-content: center; flex-direction: column; } .box--3 .box__content span { display: block; font-size: 6rem; } .box--3 .box__btn { background-color: var(--color-white); color: var(--color-black); } .box--4 { background-color: var(--color-black); text-shadow: -1px 0 0 var(--color-white), 0 -1px 0 var(--color-white), 1px 0 0 var(--color-white), 0 1px 0 var(--color-white); color: #000; } .box--4 span { letter-spacing: 0.3vw; animation: text var(--time) linear infinite running; } .box--4 span:nth-child(2n+1) { animation-delay: calc(var(--time) / 4); } .box--4 span:nth-child(3n+2) { animation-delay: calc(var(--time) / 2); } .box--4:hover { text-shadow: -1px 0 0 var(--color-grey), 0 -1px 0 var(--color-grey), 1px 0 0 var(--color-grey), 0 1px 0 var(--color-grey); } .box--4:hover span { animation: none; } .box--4:hover .box__title { z-index: 2; opacity: 1; text-shadow: -1px 0 0 var(--color-yellow), 0 -1px 0 var(--color-yellow), 1px 0 0 var(--color-yellow), 0 1px 0 var(--color-yellow); transform: scale(1.6); color: var(--color-yellow); } .box--4:hover .box__title--top { transform: scale(1.6) translateY(-1vw); } .card { position: relative; font-size: 1.5rem; color: var(--color-black); border: 1px solid var(--color-black); background-color: var(--color-grey); margin: 3%; height: 40%; width: 88%; display: flex; flex-direction: column; overflow: hidden; } .card__top { background-color: var(--color-black); color: var(--color-white); text-align: center; line-height: 1.2; } .card__title { display: flex; flex-direction: row; align-items: center; justify-content: center; flex: 1; transition: all var(--time-s); } .card__title span { padding-right: 4%; font-size: 3rem; } .card__btn { position: absolute; bottom: 0; left: 0; right: 0; line-height: 1.2; transition: all var(--time-s); background-color: var(--color-yellow); color: var(--color-black); border-top: 1px solid var(--color-black); text-align: center; transform: translateY(100%); } .card:hover .card__title { transform: translateY(-1vw); } .card:hover .card__btn { transform: translateY(0); } @keyframes text { 0%, 19% { color: var(--color-white); } 20%, 100% { color: var(--color-black); } } @keyframes rotate { to { transform: rotate(360deg); } } @keyframes rotateReverse { to { transform: rotate(-360deg); } } </style> <script> window.console = window.console || function (t) { }; </script> <script> if (document.location.search.match(/type=embed/gi)) { window.parent.postMessage("resize", "*"); } </script> </head> <body translate="no"> <div> <a class="box box--1"> <div> <div class="box__text-line box__text-line--top"> <span>Limited time</span> </div> <div class="box__text-line box__text-line--bottom"> <span>WEEKEND SALE EVENT</span> </div> </div> <div> <div> <div>Black <span>Friday</span></div> <div>shop now</div> </div> <div> <div class="box__card card"> <div> 21.11 - 27.11 </div> <div> <span>15%</span> Electronics </div> <div> See more </div> </div> <div class="box__card card"> <div> 25 november </div> <div> <span>35%</span> everything </div> <div> See more </div> </div> </div> </div> </a> <a class="box box--2"> <svg viewBox="0 0 800 800" fill="none" xmlns="http://www.w3.org/2000/svg"> <path id="line1" d="M251.994 21.5L251.995 190.5C251.995 212.591 269.903 230.5 291.995 230.5L517.5 230.5C539.592 230.5 557.5 248.409 557.5 270.5L557.5 275.5C557.5 297.591 575.409 315.5 597.5 315.5L759 315.5" stroke="black" stroke-width="40" stroke-linecap="round"></path> <path id="line2" d="M20.5001 451L226 451C248.091 451 266 468.909 266 491L266 530C266 552.091 283.908 570 306 570L475.5 570C497.591 570 515.5 587.909 515.5 610L515.5 776.5" stroke="black" stroke-width="40" stroke-linecap="round"></path> <text fill="#fff"> <textPath startOffset="0%" text-anchor="middle" alignment-baseline="central" xlink:href="#line1"> WEEKEND SALE EVENT <animate attributeName="startOffset" from="0%" to="100%" begin="0s" dur="6s" repeatCount="indefinite"> </animate> </textPath> </text> <text fill="#fff"> <textPath startOffset="0%" text-anchor="middle" alignment-baseline="central" xlink:href="#line1"> WEEKEND SALE EVENT <animate attributeName="startOffset" from="0%" to="100%" begin="3s" dur="6s" repeatCount="indefinite"> </animate> </textPath> </text> <text fill="#fff"> <textPath startOffset="0%" text-anchor="middle" alignment-baseline="central" xlink:href="#line2">ONE Day <animate attributeName="startOffset" from="0%" to="100%" begin="0s" dur="6s" repeatCount="indefinite"> </animate> </textPath> </text> <text fill="#fff"> <textPath startOffset="0%" text-anchor="middle" alignment-baseline="central" xlink:href="#line2"> special OFFER <animate attributeName="startOffset" from="0%" to="100%" begin="3s" dur="6s" repeatCount="indefinite"> </animate> </textPath> </text> </svg> <div> get up to <span>50%</span> off <div>shop now</div> </div> </a> <a class="box box--3"> <svg viewBox="0 0 540 540" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M420 270C420 352.843 352.843 420 270 420C187.157 420 120 352.843 120 270C120 187.157 187.157 120 270 120C352.843 120 420 187.157 420 270Z" fill="black"></path> </svg> <svg class="box__background box__text-svg" viewBox="0 0 540 540" fill="none" xmlns="http://www.w3.org/2000/svg"> <path id="circle1" d="M440 270C440 363.888 363.888 440 270 440C176.112 440 100 363.888 100 270C100 176.112 176.112 100 270 100C363.888 100 440 176.112 440 270Z" stroke-width="40"></path> <text> <textPath alignment-baseline="middle" href="#circle1" stroke="none" fill="#000"> SUPER SALE • BEST OFFER • the full • SUPER SALE • SALE EVENT • </textPath> </text> </svg> <svg class="box__background box__text-svg box__text-svg--reverse" viewBox="0 0 540 540" fill="none" xmlns="http://www.w3.org/2000/svg"> <path id="circle2" stroke="#000" d="M480 270C480 385.98 385.98 480 270 480C154.02 480 60 385.98 60 270C60 154.02 154.02 60 270 60C385.98 60 480 154.02 480 270Z" stroke-width="40"></path> <text> <textPath alignment-baseline="middle" href="#circle2" stroke="none" fill="#fff"> 10% 70% 35% 25% 55% 80% 15% 15% 80% 10% 70% 35% 25% 5% 80% 15% 5% 80% 15% </textPath> </text> </svg> <svg class="box__background box__text-svg" viewBox="0 0 540 540" fill="none" xmlns="http://www.w3.org/2000/svg"> <path id="circle3" d="M520 270C520 408.071 408.071 520 270 520C131.929 520 20 408.071 20 270C20 131.929 131.929 20 270 20C408.071 20 520 131.929 520 270Z" stroke-width="40"></path> <text> <textPath alignment-baseline="middle" href="#circle3" stroke="none" fill="#000"> $ $$ $ $$$ $ $$ $$$ $$ $ $$ $ $ $ $$ $$$ $ $$ $ $ $$$ $$ $$ $ $ $$$ $$ $$ $ $ $$$ $ $ $$ $$ $$$ $ $ $$$ $$$ </textPath> </text> </svg> <div> get up to <span>25%</span> <div>shop now</div> </div> </a> <a class="box box--4"> <div> 70% <span>WEEKEND SALE EVENT</span> 5% <span>the full</span> 20% <span>SUPER SALE</span> 10% <span>5% off</span> <span>SALE</span> 70% <span>SALE EVENT</span> <span>ONE Day</span>! 10% <span>SALE</span> <span>the full</span> 70%! $$ <span class="box__title box__title--top">Black Friday</span> <span>70%</span>$$! <span>85% off</span> <span>shop now</span>$ <span>5% off</span>$ <span>50% OFF</span> <span>SALE</span> 70% <span>BEST OFFER</span> <span>the full</span>$ 30%! <span>Limited time</span> 50%<span>off sale</span> <span>special OFFER</span> </div> </a> </div> <div id="xl_chrome_ext_{4DB361DE-01F7-4376-B494-639E489D19ED}" style="display: none;"> <div></div> <a id="xl_chrome_ext_download" href="javascript:;">下载视频</a> <a id="xl_chrome_ext_close" href="javascript:;"></a> </div> </body> </html>
通过以上内容我们知道了css如何实现多种促销banner样式?感谢您访问“我爱捣鼓(www.woaidaogu.com)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!