【问题标题】:CSS after pseudo class text decoration in link [duplicate]链接中伪类文本装饰后的CSS [重复]
【发布时间】:2011-02-23 12:32:28
【问题描述】:

我的问题的目标是创建一个在链接后添加文件类型的代码(以便人们知道他们是否应该期待任何特殊文件)。现在有一些选项可以使用图像来执行此操作,但我不太喜欢它,我希望方括号之间的文件类型具有不同的大小。我的方法是通过以下方式使用 :after 伪类

a[href$='.doc']:after, a[href$='.rtf']:after {
content: " [DOC]";
font-family: Monospace;
font-size: 60%;
font-weight:bolder;
color:red;
position:relative;
top: -0.8em;    
}

但是,这给我带来了一个非常奇怪的问题。内容似乎在作为链接一部分的块中。因此,链接下划线在“[DOC]”下的链接之后继续。

所以问题很简单:有没有办法以另一种方式执行此操作,或者确保我可以控制“[DOC]”下的内容与链接下的内容分开?

【问题讨论】:

标签: css pseudo-class


【解决方案1】:

尝试添加 display: inline-block;

a[href$='.doc']:after, a[href$='.rtf']:after {
content: " [DOC]";
display: inline-block;
font-family: Monospace;
font-size: 60%;
font-weight:bolder;
color:red;
position:relative;
top: -0.8em;    
}

未在 IE 中测试,但我认为 IE 与属性选择器和 :after 或两者都有问题。

【讨论】:

  • 参见:jsfiddle.net/fsEUE/1 - 它适用于 Chrome、Opera;但不幸的是不在 Firefox、IE8、Safari 中。无论如何 +1。
  • 我将它与背景图像一起使用而不是内容,它似乎效果更好:jsfiddle.net/imaginekitty/fsEUE/2
  • 是的,它适用于“每个”浏览器。如果 OP 愿意使用图像来代替,这是一个好主意。
【解决方案2】:

我希望有人会俯冲下来并指出一种更清洁的方法,但这很有效:

Live Demo

HTML:

<a href="lol.doc"><span>lol</span></a>

CSS:

a {
    text-decoration: none
}
a span {
    text-decoration: underline
}
a[href$='.doc']:after, a[href$='.rtf']:after {
    content: " [DOC]";
    font-family: Monospace;
    font-size: 60%;
    font-weight:bolder;
    color:red;
    position:relative;
    top: -0.8em;
}

【讨论】:

  • @roryf:我很高兴似乎没有人在您的链接问题中找到更干净的解决方案。再说一次,我希望有一个更干净的修复:)
【解决方案3】:

全部:我可能会坚持使用图像,因为它似乎更健壮(在支持浏览器方面)。我对世界的幼稚看法,在这种情况下,纯文本总是比图像更容易是错误的;)。

【讨论】:

  • 即使您只是制作了一个标有“[DOC]”的图像,至少您可以预知它的宽度,这样您就可以添加正确的填充,而不必担心最终用户是否调整浏览器文本的大小。
  • 等等,你是同一个提问的人吗?
  • @mark123:是同一个人在另一个帐户上。您可以通过他们拥有相同的 Gravatar 来判断这一点,这意味着他们拥有相同的电子邮件地址。
  • 哎呀!注册的好处是您总是以相同的名字出现。我仍然需要了解在正确的层中回复的细节等等......无论如何:谢谢你的提示!
猜你喜欢
  • 1970-01-01
  • 2013-01-12
  • 2012-04-10
  • 1970-01-01
  • 2011-03-29
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
相关资源
最近更新 更多