【问题标题】:How to keep <a> "text-decoration: underline" from breaking while applying some positioning to the child <span>?如何在对子 <span> 应用一些定位时保持 <a> “text-decoration: underline”不中断?
【发布时间】:2015-03-05 11:03:25
【问题描述】:

出于下面解释的原因,我在&lt;a&gt; 内部使用&lt;span&gt; 的相对定位,以便稍微改变用&lt;span&gt; 包裹的文本的位置(使其比自动放置的位置高2px)。当我这样做时,很明显,text-decoration: underline; 坏了,低于我的&lt;span&gt; 它也开始高出 2px。请看小提琴:http://jsfiddle.net/8qL934xv/

我想知道,是否有办法让&lt;a&gt; 下划线也位于&lt;span&gt; 下方,且不会中断,最好仅使用 HTML/CSS。

我是如何遇到这个问题的:

我正在建立一个双语网站,有时英语单词仍然在第二语言内容中。在这些情况下,我用&lt;span lang="en"&gt; 包装这些单词并以这种方式应用相应的字体系列:

* [lang="en"]
{
    font-family: 'Ropa Sans', helvetica;
}

但是,我用于次要语言标题的字体系列和“Ropa Sans”彼此相邻看起来不太好,它们看起来好像“没有坐在同一行”。为了解决这个问题,我一直在我的&lt;span&gt;-s 上使用相对定位。例如:

h1 span {
   position: relative;
   top: -2px;
}

这个解决方案工作得很好,在我意识到它在应用于链接时会与下划线混淆之前。我可以避免在此类链接上使用文本装饰,但我想知道是否有一些我无法识别的简单 CSS 解决方案。

【问题讨论】:

  • 如果字体不合适,不要一起使用。任何需要调整渲染,例如通过降低或提高字形使字体适合只是表明它们不适合。所以你真的是在解决错误的问题,应该问如何找到兼容的字体(这在 SO 上是题外话,但还有其他论坛可以解决此类问题)。
  • 这不是他要问的@JukkaK.Korpela
  • @Jackhardcastle,这就是为什么我把它写成评论而不是答案。
  • 但他从来没有说过字体不合适,他的问题是下划线 :P 只是随机的,仅此而已。
  • @Jackhardcastle,“彼此不好看,而且看起来好像‘不坐在同一条线上’”当然意味着不合适。

标签: html css underline text-decorations


【解决方案1】:

这是不可能的,但你可以做类似的事情

a {
    display: block;
    border-bottom: 1px solid transparent;
    text-decoration: none;
}

a:hover {
    text-decoration: none;
    border-bottom: 1px solid blue;
    display: inline-block;
}

这行得通。

【讨论】:

猜你喜欢
  • 2014-02-25
  • 2021-10-27
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-23
  • 2016-05-09
相关资源
最近更新 更多