스니펫: CSS만으로 실현하는 랭키구그 배너 표기

7674 단어 CSSSVG
사이트에서 발견했기 때문에 복사하면서 만들어 보았다.

CSS만으로 실현하는 랭킹 배너 표기



이런 느낌
캐릭터 랭킹을 만들기 위한 코드를 만들어 보았다.



html


<html>
  <body>

      <a class='sss'>
        <img src="2399.png" width="90px" height="90px" alt="">
      </a>
      <a class='sss'>
        <img src="" width="90px" height="90px" alt="">
      </a>
      <a class='sss'>
        <img src="" width="90px" height="90px" alt="">
      </a>
      <a class='sss'>
        <img src="" width="90px" height="90px" alt="">
      </a>
      <a class='sss'>
        <img src="" width="90px" height="90px" alt="">
      </a>
  </body>
</html>

CSS



    <style>
      .sss{
        counter-increment:rankingnumber;
      }
      .sss:before{
        position: absolute;
        color:#fff;
        font-size:10px;
        width:30px;
        height:30px;
        text-align:left;
        border:1px solid #777;
        background-color:#777;
        content:counter(rankingnumber) "位";
        box-shadow:10px 0 0 12px #666;
        -webkit-mask-image: url(svg.svg#top);
        -webkit-mask-size: cover;
      }

      .sss :after{
        position: absolute;
        content: '';
        margin-left: -36px;
        margin-top: -30px;
        display: block;
        border-radius:15px;
        width: 30px;
        height: 30px;
        border: 1px solid #777;
        mask-image: url(svg.svg#top);
        mask-size: cover;
      }
    </style>


SVG



svg.svg

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none">
  <defs>
    <style>
      g {
        display: none;
      }
      g:target {
        display: inline;
      }
    </style>
  </defs>

  <g id="top">
    <polygon fill="black" points="0 100 0 0 100 0"/>
  </g>

  <g id="bottom">
    <polygon fill="black" points="100 0 100 100 0 100"/>
  </g>

  <g id="top-reverse">
    <polygon fill="black" points="0 0 100 0 100 100"/>
  </g>

  <g id="bottom-reverse">
    <polygon fill="black" points="0 0 0 100 100 100"/>
  </g>
</svg>

좋은 웹페이지 즐겨찾기