基于this example of an icon being used as a background on codepen,我如何在规则的时间间隔内为背景重复不同的图标,仅CSS可以实现这种效果吗?
这使用:after
,但在content
(\f087
)中仅提供了一个图标,有没有一种合理的方法可以使它看起来像这样:https://lololol.cool/907txl0ko9.jpg < / p>
.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;
}
答案 0 :(得分:3)
一个想法是将图标视为SVG,您可以轻松地将其用作背景并重复该图标。为此,您可以使用依赖于SVG的Font Awesome的最新版本。
这里是一个例子:
.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
属性的路径,用于指定所需的颜色(您可以删除找到的所有其他东西,例如类)。
答案 1 :(得分:-2)
您不能仅使用CSS来做到这一点。您必须将javascript用于此解决方案。首先,您需要创建一个包含图片网址的数组,然后在应用于某些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>