微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

css – 在IE8上隐藏在子图像后面的父元素上的伪元素

为什么在IE8中,是在父母的孩子身后流动的pesudo元素的背景颜色?文本在前面流动,但背景颜色不在前面. Z-index似乎没有任何帮助.

我无法确定这是否是IE8中的错误.这似乎是一个非常常见的用例,但我找不到很多博客文章或与之相关的SO问题.

http://jsfiddle.net/VAg2E/

<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;
    }

编辑:A related Stack Overflow Question about Stacking Order

解决方法

这绝对是IE8中的一个错误;因为你的:在定位伪元素之前,它应该创建一个新的堆叠上下文并且总是在img unless you give it a negative z-index之上绘制(即便如此,整个元素应该在它后面绘制,而不仅仅是它的背景).

这个问题似乎也特别适用于堆叠:之前和之后的伪元素和替换元素,如img.看起来IE8在堆叠方面对待替换内容的方式不同,但无论它做什么,它都绝对不符合规范.

您可能已经知道,这在IE9中已得到修复.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。