Javascript 如何使用css设置图像:before和数据属性
我想用:before设置图像背景,因为我会在上面放一些内容 以前,我使用数据属性动态地将其设置为before 问题:我是如何用Javascript 如何使用css设置图像:before和数据属性,javascript,jquery,css,Javascript,Jquery,Css,我想用:before设置图像背景,因为我会在上面放一些内容 以前,我使用数据属性动态地将其设置为before 问题:我是如何用更改号码的:在之前,我对图像的预期是一样的 以下是我所尝试的: <li data-image="https://via.placeholder.com/150/0000FF">hello 1</li> background: url(attr(data-image)); ul{ 列表样式:无; 线高:43px; } li{位置:相对;}
更改号码的:在
之前,我对图像的预期是一样的
以下是我所尝试的:
<li data-image="https://via.placeholder.com/150/0000FF">hello 1</li>
background: url(attr(data-image));
ul{
列表样式:无;
线高:43px;
}
li{位置:相对;}
李:以前{
内容:“;
位置:绝对位置;
左:0;
排名:0;
宽度:100%;
高度:40px;
背景:url(attr(数据图像));
}
#显示在之前{
位置:相对位置;
宽度:90px;
高度:90px;
背景:红色;
颜色:#fff;
}
#显示WithBefore:before{
内容:attr(数据编号);
位置:绝对位置;
左:0;
排名:0;
宽度:100%;
身高:100%;
字体大小:30px;
文本对齐:居中;
线高:92px;
}
- 你好1
- 你好2
- 你好3
虽然许多开发人员强烈要求这样做,但目前您不能对URL使用属性
另一种方法是使用CSS自定义属性:
/*您的代码*/
李:以前{
背景:var(--image);
}
浏览器支持很好,但您可能希望权衡此选项,而不是简单地内联背景图像
属性并对元素本身使用隐藏背景技巧:
/*您的代码*/
li{背景大小:0;}
李:以前{
背景图像:继承;
}
虽然许多开发人员强烈要求这样做,但目前您不能对URL使用属性
另一种方法是使用CSS自定义属性:
/*您的代码*/
李:以前{
背景:var(--image);
}
浏览器支持很好,但您可能希望权衡此选项,而不是简单地内联背景图像
属性并对元素本身使用隐藏背景技巧:
/*您的代码*/
li{背景大小:0;}
李:以前{
背景图像:继承;
}
如果我理解正确,并且根据您每200ms对数据图像
属性进行随机化的方式,这意味着您每200ms需要随机背景。如果是这样,只需使用jQuery将样式附加到头部即可
如果不是,只需设置一次数据图像
,并将样式附加到头部
在我的示例中,我遵循了您的代码,它每200ms生成一次随机背景
我希望这是有意义的
setInterval(函数(){
var randomImages=['https://via.placeholder.com/150/0000FF','https://via.placeholder.com/150/FF0000','https://via.placeholder.com/150/FFFF00'];
var imagIndex=Math.floor(Math.random()*3);
$('li:eq('+imagIndex+')).attr('data-image',randomImages[imagIndex]);
//log(随机图像[imagIndex]);
$('head').append('li:before{background:url('+randomages[imagIndex]+'');}');
},200);代码>
ul{
列表样式:无;
线高:43px;
}
li{位置:相对;}
李:以前{
内容:“;
位置:绝对位置;
左:0;
排名:0;
宽度:100%;
高度:40px;
}
- 你好1
- 你好2
- 你好3
如果我理解正确,并且根据您每200ms对数据图像
属性进行随机化的方式,这意味着您每200ms需要随机背景。如果是这样,只需使用jQuery将样式附加到头部即可
如果不是,只需设置一次数据图像
,并将样式附加到头部
在我的示例中,我遵循了您的代码,它每200ms生成一次随机背景
我希望这是有意义的
setInterval(函数(){
var randomImages=['https://via.placeholder.com/150/0000FF','https://via.placeholder.com/150/FF0000','https://via.placeholder.com/150/FFFF00'];
var imagIndex=Math.floor(Math.random()*3);
$('li:eq('+imagIndex+')).attr('data-image',randomImages[imagIndex]);
//log(随机图像[imagIndex]);
$('head').append('li:before{background:url('+randomages[imagIndex]+'');}');
},200);代码>
ul{
列表样式:无;
线高:43px;
}
li{位置:相对;}
李:以前{
内容:“;
位置:绝对位置;
左:0;
排名:0;
宽度:100%;
高度:40px;
}
- 你好1
- 你好2
- 你好3
我有非常干净的方法来处理数字,没有javascript或jquery,只有在使用之前,请参阅我的更改数字代码,因为使用数字,您处理的是内容,而不是背景。我有非常干净的方法来处理数字,没有javascript或jquery,只有在使用之前,请参阅我的更改数字代码,因为对于数字,您处理的是内容,而不是背景。如果我想在style
中添加更多的style
,比如说背景色,r