我正在使用Chrome插件"Stylebot“来改变网站的设计。所以我必须用CSS来处理所有的事情。我不能更改HTML或添加任何JS代码.
现在我有了以下HTML代码:
<img class="inlineimg" src="/designs/cyborg/misc/navbits_start.gif" alt="" border="0">我想用一个带有背景和文字的div容器来代替这个图像。
我试过这样的方法:
img[class=inlineimg] {
visibility: hidden;
}
img[class=inlineimg]:before {
visibility: visible;
width: 90px;
height: 20px;
background: blue;
content: "Text";
}我知道这是错误的,但我不知道如何才能做到这一点。
发布于 2018-01-07 17:41:24
正如您所说的,img位于span标记span:before.中,因此我建议使用使用img:before是不正确的/有效的。
$('span').each(function() {
if ($(this).find('>.inlineimg').length !== 0) {
$(this).addClass('imgSpan');
}
})body {
font: 13px Verdana;
}
span {
display: inline-block;
position: relative;
}
img[class=inlineimg] {
visibility: hidden;
}
span.imgSpan:before {
position: absolute;
top: 0;
width: 90px;
height: 20px;
background: blue;
color: #fff;
content: "Text";
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span><img class="inlineimg" src="http://via.placeholder.com/350x150" alt="" border="0"></span>
<p>-----------------------</p>
<p>without image</p>
<span style="padding:5px;width:100px;background:red;"></span>
<p>-----------------------</p>
<p>image not having <b>inlineimg</b> class inside span</p>
<span><img src="http://via.placeholder.com/350x150" alt="" border="0"></span>
发布于 2018-01-07 17:31:58
前和::after生成的伪元素包含在元素的格式框中,因此不适用于替换的元素,如
<img>,也不适用于<br>元素。
为了达到你想要做的事情,你必须尝试找到另一个接近图像的元素。
https://stackoverflow.com/questions/48138985
复制相似问题