代码之家  ›  专栏  ›  技术社区  ›  JP Silvashy Gautam Rege

图标的重复背景

css
  •  3
  • JP Silvashy Gautam Rege  · 技术社区  · 6 年前

    基于 this example of an icon being used as a background on codepen ,如何在固定的时间间隔内为背景重复不同的图标,这仅在css中是可能的吗?

    这使用 :after 但在 content ( \f087 ),是否有合理的方法使其看起来更像这样: https://lololol.cool/907txl0ko9.jpg

    .section:after {
      content: "\f087"; 
      font-family: FontAwesome;
      font-style: normal;
      font-weight: normal;
      text-decoration: inherit;
      position: absolute;
      font-size: 400px;
      color: lightblue;
      top: 50%;
      left: 50%;
      margin: -300px 0 0 -200px;
      z-index: 1;
    }
    
    2 回复  |  直到 6 年前
        1
  •  3
  •   Temani Afif    6 年前

    一个想法是将图标视为SVG,您可以轻松地将其用作背景并重复它。您可以使用最新版本的 Font Awesome 它们依赖SVG。

    下面是一个例子:

    .box {
      height:200px;
      border:1px solid;
      background:
        url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" ><path fill="red" d="M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"></path></svg>') top left/60px 50px;
    }
    <div class="box">
    </div>

    只需选择要使用的图标,检查元素,获取SVG代码,然后用作背景,就可以重复它。

    图标的结构对所有人都是一样的。它是一个SVG元素,其中的路径带有 fill 属性来指定所需的颜色(您可以移除找到的所有类)。

        2
  •  -2
  •   ZearaeZ    6 年前

    你不能只使用CSS。你必须使用javascript来解决这个问题。首先,您需要创建一个包含图像url的数组,然后随机选择应用于某个div或背景的图像。你可以这样做。

            <script type="text/javascript">
        if (document.getElementById) { window.onload = swap };
        function swap() {
        var numimages=7;
        rndimg = new Array("images/pmoblogo7.jpg", "images/pmoblogo6.jpg", "images/pmoblogo5.jpg", "images/pmoblogo4.jpg", "images/pmoblogo3.jpg", "images/pmoblogo2.jpg", "images/pmoblogo.jpg"); 
        x=(Math.floor(Math.random()*numimages));
        randomimage=(rndimg[x]);
        document.getElementById("banner").style.backgroundImage = "url("+ randomimage +")"; 
        }
        </script>
    <div id="banner"></div>