CSS3 的 text-decoration 模块包含一个text-underline-position属性,它指定下划线是否应该位于整个文本的下方:
或略低于基线,让它与文本下降相冲突:
好的,我们都知道下划线只能作为最后的手段使用,但是……如果你要使用它,最常用的方法是什么?每种下划线样式的优缺点是什么?
CSS3 的 text-decoration 模块包含一个text-underline-position属性,它指定下划线是否应该位于整个文本的下方:
或略低于基线,让它与文本下降相冲突:
好的,我们都知道下划线只能作为最后的手段使用,但是……如果你要使用它,最常用的方法是什么?每种下划线样式的优缺点是什么?
最常见的是什么?
好吧,一些排版师会说,下划线可能应该一起避免,并且下划线只适用于打字机或网络上的超链接。但是,我要补充一点,创造力就是看到以创造性方式打破规则的机会,所以你让这个指导你多少取决于你。
在网络上,最常见的是将它放在基线下方,重叠下降。但这仅仅是因为到目前为止,这一直是主流浏览器的默认渲染。
在打字机上,下划线与下降线重叠,但略有不同:它位于您的两个示例(示例)之间。如果您查看下降线的基线,例如底部循环g
或底部衬线p
(以衬线字体),那就是下划线所在的位置。所以它“与”下降器的底部“连接在一起”。
优点和缺点
下划线与下降线重叠的好处是它根本不会影响您的行距(或“前导”) - 您不必增加行之间的间隙来容纳下划线。
如果这很重要,那么完全清除您的后代的好处是可读性。但是你会遇到需要增加行间距的缺点。如果您的情况无论如何都允许有很多行距,那么一定要这样做。
如果您使用的是网络,那么下划线与超链接密切相关。因此,对于不属于链接的文本,应避免使用任何下划线。以其他方式表示您想要表示的内容 - 使用粗体、斜体或全部大写。
CSS 2.1 规范中的描述text-decoration: underline
将其效果定义为下划线,没有详细说明,但浏览器将其实现为显示在基线下方一点点。因此,它经常削减降序(以及放在字母下方的变音符号)。
在 CSS3 Text 草稿中,有text-underline-position
位置,但似乎没有任何浏览器支持。(根据css666.com 的信息,IE 支持它,但至少在 IE 9 上,支持似乎仅限于识别属性和接受 value auto
,初始值 - 所以它真的不支持。)更新:实际上, IE(从第 6 版开始)有更多的支持,但它确实让您只需将下划线放在文本 (!) 上方而不是下方。
正如斯科特的回答和 Joonas 的评论中所述,您可以使用底部边框来模拟下划线,然后您可以很好地控制“下划线”样式。这可能适用于例如下划线链接,它们是独立的,而不是内联的。对于内联文本,您可能希望在其中添加下划线,例如因为您正在对包含下划线的打印内容进行 HTML 化,因此普通的 CSS 下划线可能会更好——因为这种下划线或多或少符合打印的传统。
我相信任何带下划线的文本通常都很小,以至于读者不存在差异。这是设计师非常关心的事情之一,但读者从不关心。在我看来,这更像是一种风格选择。
我更喜欢基线定位,在下降部分有一个中断:即text-decoration-skip: ink;
,但是,目前并不真正支持。我什至有两个类,并为下降者添加一个跨度以从它们中删除下划线。(通过 php 替换文本,因此创建的代码并不多)。
由于偏移,我永远不会使用边框底部技巧(或底部属性)。我发现,对于我的读者来说,下划线的偏移比任何事情都更让他们分心。
我尝试切换到粗体、斜体、粗斜体或颜色变化,而不是尽可能使用下划线。