2012-01-03 87 views
3

我有这个CSS把一个图标的每个外部链接后::考虑伪不考虑方向(rtl)后? (火狐)

a[target="_blank"]:after { 
    background: url("images/external_icon.png") 0 0 no-repeat; 
    border: 0 none; 
    content: ""; 
    padding: 0 14px 0 0; 
} 

如果我愿意更改为:before代替,图标将出现在链接的前面,而不是。到现在为止还挺好。

但是,在我从右到左版本的网站中,使用direction: rtl;时,图标仍然显示在元素的右侧,而不是“翻转”到另一侧。更改为:before仍然会使图标显示在元素的右侧。

这是一个已知的FF错误?还有其他解决方案吗? (在Chrome中正常工作)

回答

1

好的,所以我找到了解决方案。改为使用内联块。

display: inline-block; 
height: 13px; 
width: 13px; 

简单的解决方案,但到达那里并不容易。

我仍然觉得这个问题的CSS可能是一个浏览器的错误?

+1

你可以看看他们的Bugzilla(https://bugzilla.mozilla.org/)以查看是否可以找到有关该bug的任何信息。如果你没有找到它,你应该把它归档。 https://bugzilla.mozilla.org/enter_bug.cgi – Filip 2012-01-03 12:31:46

1

Firefox的行为似乎是正确的::after的渲染应该与在a[target="_blank"]末尾插入这些样式的空跨度的渲染相同。如果您尝试这样做,则Chrome和Firefox中的行为会相同,并且与Firefox的行为相匹配:after

虽然您可能想要提交WebKit错误。