每个列表项都有一个特定的背景图像
Having a specific background image for each and every list item
我想知道是否有办法将其浓缩并在上进行
li:nth-child(1){
background-image: url(1.jpg);
}
li:nth-child(2){
background-image: url(2.jpg);
}
li:nth-child(3){
background-image: url(3.jpg);
}
li:nth-child(4){
background-image: url(4.jpg);
}
li:nth-child(5){
background-image: url(5.jpg);
}
等等。
有没有一种方法可以用纯css变量实现这一点,或者有没有一个更简单的javascript解决方案?
CSS还没有办法将元素的索引与该元素的CSS的属性相关联;使用JavaScript很简单:
var liElements = document.querySelectorAll('li');
[].forEach.call(liElements, function (li, index) {
li.style.backgroundImage = 'url(' + index + '.jpg');
});
有了CSS,在未来,以下可能会工作(但这纯粹是猜测):
ul {
counter-reset: liCount;
}
ul li {
counter-increment: liCount;
background-image: url(counter(liCount) '.jpg');
}
这使得在任何当前浏览器中都不能工作,并且可能永远不能在任何浏览器中。如前所述,这纯属推测。
如果你不知道你有多少孩子,你会想使用JS。或者,如果你这样做了,但不想全部键入,或者有一个max,那么PHP可以只生成CSS文件,这将比JS在加载后更快。
var liElems = document.getElementsByTagName('li');
for(var i = 0; i < liElems.length(); ++i){
li.style.backgroundImage = 'url("' + i + '.jpg")';
}
或者,对于PHP:
for($idx = 0; $idx < MAGIC_NUM; ++$idx){
print("li:nth-child($idx){");
print(" background-image: url($idx.jpg);")
print("}'n");
}
相关文章:
- 可以在这里为背景图像设置滤镜吗
- 使用 js 将背景图像设置为 HTML
- 如何使用css动画/javascript使具有背景图像的元素出现
- 循环浏览多个身体背景图像
- 背景图像顶部的滚动图像不移动
- 在pdfmake中嵌入背景图像
- 修复选择菜单时的背景图像
- 使用css()设置背景图像;不起作用
- 鼠标悬停时如何居中放大背景图像
- 强制谷歌为javascript背景图像编制索引
- 淡入不带HTML的背景图像
- 具有淡入淡出效果的全背景图像
- 未加载随机背景图像
- 背景图像前显示Javascript警报
- javascript背景图像位置循环
- CSS动画背景图像的过渡越来越暗
- "Ken Burns效应”;悬停背景图像
- 通过ID JavaScript显示随机背景图像
- JavaScript背景图像
- 带有图像和背景图像的ClipTo