Marie Mosley 刚刚完成了对年鉴中 text-decoration
属性(及其朋友)的改进。 您可能已经了解了这个属性。 例如,大多数默认浏览器样式通过 text-decoration: underline;
包含带下划线的链接 - 您也可以使用 text-decoration: none;
将其删除。
但是您可能没有意识到,您可以使用此属性做更多的事情,以及各种子属性提供更精细的控制。
文本可以有多个装饰
像
a {
text-decoration: underline overline;
}

查看年鉴中的 text-decoration
条目。 更准确地说,这是在 text-decoration-line
子属性中添加多个值。
您可以更改装饰的颜色
装饰线的默认颜色与文本的 color
相同。 但是您可以更改它
a {
text-decoration-color: #f06d06;
}

查看年鉴中的 text-decoration-color
条目。
注意 Gecko 在降部下方渲染下划线,而 WebKit/Blink 在上方渲染

处理彩色下划线的一种常见方法通常是使用 border
而不是 text-decoration
。 边框可以单独控制颜色、厚度和位置,比 text-decoration
能更好地完成。
但有一些事情是边框做不到的,例如…
您可以更改装饰的样式
无法让边框做到这一点!
a {
text-decoration-style: wavy;
}

查看年鉴中的 text-decoration-style
条目。
它将变得更加花哨
对于更好的带下划线文本,一直存在着 明确的需求。 例如,如该文章中所述,为了更好的可读性,跳过降部

这将由 text-decoration-skip
控制,但尚未在任何地方实现。 同时,将下划线设置为更宽松、对比度更低的颜色可能会有所帮助。 以下是 rgba() 的使用示例

跳过降部只是它可能具有的一个功能。 您将能够跳过某些内联元素、空格并控制边缘。
注意 Safari/iOS 似乎默认跳过降部。

-webkit-text-decoration-skip: none;
有效。游乐场
由于 浏览器支持 的差异,此演示中的部分(或全部)可能无法在您的浏览器中运行。
查看 CodePen 上 CSS-Tricks 的 Pen text-decoration-style (@css-tricks)。
所以是的! 即使是像这样的简单东西(我们有时认为理所当然),也会随着时间的推移在 CSS 世界中发生变化。
我最近发现了一个有趣的奇怪错误
默认情况下,下划线会穿过所有子内容(您无法通过更改
text-decoration
属性来关闭它们)除了内联块。您会认为“内联块”应包括内联 SVG。 但内联 SVG 的默认显示模式只是
display: inline
。 如果您将内联 SVG 包含在具有下划线的标题或链接中,大多数浏览器会将您 SVG 图标中的每个字母都加下划线。 Internet Explorer 这一次是明智的浏览器,并没有这样做。 对于其他浏览器,您必须将图标设置为display: inline-block
。(如果您想知道:我是在为 PDF 文档的链接之后创建小“PDF”图标时发现的。 我希望图标在链接内部,这样颜色就会匹配,但下划线太丑了!)
太棒了。 我不知道这一点。 我到底有多少次使用某种 :after/:before 组合来自定义下划线?
我安装了最新的 Chrome,但演示中的例子都没有生效。 它们看起来都一样:加了下划线。
@René:根据浏览器支持链接,Chrome = 版本 31,仅在启用实验性 Web 平台功能标志的情况下才有效
我也是。 Chrome 没有任何显示,只有下划线。
我在 Android 平板电脑上的 Chrome 上也是如此。 所有下划线都一样.. 只是下划线。
也就是说,它们仍然值得使用,因为当浏览器赶上来时,您的花哨下划线将已准备就绪。
这实际上让我笑了,我当时想“不可能!” 我和我的同事现在觉得很傻,因为我们不相信你,在 Chrome/IE 中也遇到了同样的问题。 感谢分享,让我觉得我一开始不了解我的 CSS。 :)
很棒的文章 Chris。 一段时间前我尝试过这个。 另外,您是否有利用 css 过渡的 text-decoration 效果的不错例子?
规范中需要类似的东西
text-decoration-padding-bottom: 0.2em; ( 使用一个更好的名称。 )
太天才了。 我一直希望有这样的东西
太棒了。 谢谢。
不错,我可以在我的 tupac quotes 页面上使用它。 谢谢
在浏览器得到广泛支持之前,最好不要在广泛使用中使用这些 CSS 声明。 继承功能可能需要加强。 总体而言,这些功能非常有用,我希望其他浏览器也加入进来。