我在IE8中发现了一个关于CSS :before
和:after
伪元素的奇怪问题。当您将一个伪元素位置设置为绝对而另一个伪元素位置设置为相对时,会出现此问题;请参阅以下示例:
<style type="text/css">
div:before { content: ""; position: relative; }
div:after { content: ""; position: absolute; }
</style>
<div>stuff</div>
IE8崩溃了。从字面上看。没有错误,没有任何帮助 - 只是可怕的“Internet Explorer已停止工作”,Windows 7尝试重新启动它。需要说明的是,切换到IE9的IE8浏览器和渲染模式时会发生错误。当我在IETester的IE8页面中加载示例时,没有发生错误。
我会尽快在实际的IE8中对此进行测试,但我的问题是:为什么会发生这种情况?这是IE8的错误吗?可能是某种position
bug的副作用? IE8不应该呈现伪元素吗?
答案 0 :(得分:2)
是的,这很奇怪。如果你在float:left;
div:before
,我就能让它发挥作用
答案 1 :(得分:1)
我知道这个问题很老..但是我遇到了同样的问题并用“div :: after”而不是“div:after”修复了它。