为什么当文本容器有:before/:after伪元素时,text-indent无法生效?(FX/Opera)

11
今天遇到了这个怪事。

http://jsfiddle.net/UJAjD/3/

你会发现在Firefox 7和Opera中,灰色框里面有一个"Next"字样。CSS包括一个text-indent属性,应该将该文本移动到其容器之外。在IE或Chrome中查看此页面时,它显示出了应有的方式。至少你认为它应该显示的方式。

这是一个已知的bug吗?有没有解决方法?


1
问题似乎与伪元素无关,它的表现完全相同:http://jsfiddle.net/UJAjD/4/ - thirtydot
是的,看起来就像Boris在下面提到的那样。谢谢。 - jkupczak
1个回答

11
根据规范,text-indent 影响块中第一行框中的文本。
问题在于规范并没有清楚地说明这种情况下第一行框是包含块还是包含文本,不同的浏览器会有不同的解释...

有道理。考虑到这一点,我所要做的就是将:before更改为:after,这样它就不再是第一行了。谢谢。 - jkupczak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接