网站链接: 我爱捣鼓
当前位置: 首页 > 前端开发 > css

css实现多种促销banner样式

2022/11/24 12:06:35

电商节双十一、双十二经常需要搞促销,今天我们就来介绍几款通过css实现的促销banner样式,如下图所示:<html><head> <meta charset="UTF-8"> <link rel="apple-touch-icon" type="image/png" href="https…

        电商节双十一、双十二经常需要搞促销,今天我们就来介绍几款通过css实现的促销banner样式,如下图所示:


2.gif3.gif

<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)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!



相关资讯

  • css实现漂亮的苹果风格组件效果

    苹果IOS系统的界面很漂亮,今天我们就用css实现漂亮的类似苹果风格的组件效果。如下图所示:<html><head> <meta charset="UTF-8"><style data-styles="">ion-icon{visibility:hidden}.hydrated{visibility:inherit}</st…

    2022/11/24 10:36:42
  • css实现图片和背景同时滑动的酷炫效果

    我们曾经介绍过很多种图片滑动的效果,今天我们使用css实现一个图片和背景同时滑动的酷炫效果,如下图所示:<html><head> <meta charset="UTF-8"> <link rel="apple-touch-icon" type="image/png" href…

    2022/11/22 21:57:11
  • css实现酷炫Flash文字跳动动画效果

    Flash虽然已被淘汰了,但它所实现的一些效果还是非常棒的,今天我们就用css实现一个酷炫的Flash文字跳动的经典动画效果,如下图所示:<!DOCTYPE html><html><head> <meta charset="UTF-8"> <link rel="apple-touch-icon…

    2022/11/22 21:39:50
  • 设置英文首字母大写的css属性是什么?

    设置CSS text-transform 的属性为capitalize就可以实现英文首字母大写。 定义和用法  text-transform 属性控制文本的大小写。 属性值 值 描 述 none 默认。定义带有小写字…

    2021/7/14 20:35:17
  • 只让页面显示横滚动条,不显示竖滚动条如何实现?

    只让页面显示横滚动条,不显示竖滚动条的方法其实很简单,主要用到body的两个css属性 overflow和 overflow-y,如下所示:body { overflow:scroll; overflow-y:hidden;}

    2021/2/28 21:45:25
  • 网页的滚动条样式可以修改吗?如何修改?

    网页的滚动条样式可以修改的,主要是使用css来控制那如何修改呢?如下代码:<div class="inner"> <div class="innerbox"> <p style="height:200px;">这是内容111</p> <p style="hei…

    2021/2/28 21:15:24
  • css如何实现6张图片均匀排列在一行?

    css部分如下:img{width:120px; height:80px;float:left;margin-right:16px;}.img3{margin-right:0;}html部分如下:<img src="images/001.jpg" /><img src="images/002.jpg" /><img src="images/003.jpg" /><img src=…

    2021/2/28 21:10:01