为什么在IE8中,是在父母的孩子身后流动的pesudo元素的背景颜色?文本在前面流动,但背景颜色不在前面. Z-index似乎没有任何帮助.
我无法确定这是否是IE8中的错误.这似乎是一个非常常见的用例,但我找不到很多博客文章或与之相关的SO问题.
<div id="parent"> <img src="http://placehold.it/200x200"> </div> #parent{ padding: 20px; } #parent:before{ content: 'Behind the image'; position: absolute; top: 0; left: 0; width: 100px; height: 100px; background-color: red; }
解决方法
这绝对是IE8中的一个错误;因为你的:在定位伪元素之前,它应该创建一个新的堆叠上下文并且总是在img
unless you give it a negative
z-index
之上绘制(即便如此,整个元素应该在它后面绘制,而不仅仅是它的背景).
这个问题似乎也特别适用于堆叠:之前和之后的伪元素和替换元素,如img.看起来IE8在堆叠方面对待替换内容的方式不同,但无论它做什么,它都绝对不符合规范.
您可能已经知道,这在IE9中已得到修复.