:伪考虑后不考虑方向(rtl)? (火狐)

时间:2012-01-03 11:01:41

标签: css firefox right-to-left

我有这个css在每个外部链接后放置一个图标:

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中运行良好)

2 个答案:

答案 0 :(得分:1)

好的,所以我找到了解决方案。改为使其成为内嵌块。

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

简单的解决方案,但实现目标并不容易。

我仍然觉得问题中的css可能是浏览器错误?

答案 1 :(得分:1)

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

但您可能想要提交一个WebKit错误。