1

在一个页面上(我为自己维护,因此可以将浏览器支持限制为 FF 3.5+)我想在每个指向 StackOverflow.com 的链接之后添加“SO”。首先我是这样做的……</p>

a[href^='https://stackoverflow.com/']:after {
  content: "SO";
  font-size: x-small;
  color: #333333;
  padding-left: 1px;
  position: relative;
  bottom: 3px;
}

…但是 Firefox 像链接本身一样在“SO”下划线。阅读问题后

…我得到了以下解决方案:

a[href^='https://stackoverflow.com/']:after {
  content: "SO";
  font-size: x-small;
  color: #333333;
  padding-left: 1px;
  position: relative;
  bottom: 3px;
  /* clear the underline */
  padding-bottom: 5px;
  background-color: white;
}

也许它是hack'ish,但它相当直观(下划线被其上方的背景隐藏)并且效果很好(我不记得我在FF 3.5和FF 7以外的浏览器中检查过它,但仍然是FF是唯一的我真的很想支持的浏览器)。问题是代码在 FF 8 中中断:上面的下划线清除代码不起作用。所以我正在寻找解决方案。

实际上,我已经找到了一个:添加“显示:内联块”,但是:

  • 它可能会导致“SO”被换行
  • 它不能与旧的下划线清除代码一起使用,因为它padding-bottom被添加到链接本身

http://cssdesk.com/5TqEN

最后说明:我希望它至少在 FF 3.5 和 FF 8 中工作,仅使用 CSS,而不使“SO”文本成为图像,比inline-block解决方案更好

4

1 回答 1

2

我想出了这个http://jsfiddle.net/wGb68/4/

a[href^='http://stackoverflow.com/'] {
    padding-right: 15px;
    display: inline-block; /* not needed, but fixes Chrome and Opera */
}

a[href^='http://stackoverflow.com/']:after {
    font-size: x-small;
    padding-left: 1px;
    content: "SO";
    color: #333;

    position: absolute;
}

使用此代码清除text-decorationFirefox 和 Opera 中唯一的作品很糟糕。我无法在任何其他浏览器中使用它。:/

display: inline-blockFirefox 中不需要,但在 Opera 和 Chrome 中没有它,“SO”不会跟随换行符,甚至会与容器重叠。

于 2011-11-20T10:56:49.090 回答