Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用css设置图像:before和数据属性_Javascript_Jquery_Css - Fatal编程技术网

Javascript 如何使用css设置图像: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{位置:相对;}

我想用:before设置图像背景,因为我会在上面放一些内容

以前,我使用数据属性动态地将其设置为before

问题:我是如何用
更改号码的:在
之前,我对图像的预期是一样的

以下是我所尝试的:

  <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