是否应在下划线处与文本下标冲突?


12

CSS3的文本装饰模块包括一个text-underline-position属性,该属性指定是否应将下划线置于整个文本的下方:

          在此处输入图片说明

或刚好低于基准线,使其与文字降序符号冲突:

          在此处输入图片说明

好的,我们都知道下划线仅应作为最后的手段使用,但是……如果要使用下划线,最常用的方法是什么?每种下划线样式的优缺点是什么?


1
关于CSS:不需要css3 jsfiddle.net/lollero/B45A4(更好的浏览器支持。例如,还可以用虚线下划线表示)。
乔纳斯2012年

构建了一个开源库来解决这个问题:eager.io/showcase/SmartUnderline
亚当

Answers:


7

最常见的是什么?

好吧,一些印刷者会说,应该一起避免使用下划线,并且该下划线仅适用于打字机或网络上的超链接。但是,我要补充的是,创造力是指看到以创新方式打破规则的机会,因此,让您多少指导自己来决定。

在网络上,最常见的做法是将其恰好位于基准线以下,重叠的下降线。但这只是因为到目前为止,这一直是主要浏览器的默认渲染。

在打字机上,下划线与下划线重叠,但略有不同:它落在您的两个示例之间(示例)。如果查看下降器的基线,例如的底线g或的底线p(衬线字体),则是下划线所在的位置。因此,它“与”下降器的底部“相连”。

利弊

下划线与下划线重叠的好处是,它根本不会影响行距(或“前导”)-不必为了适应下划线而增加行间距。

如果这很重要,则完全清除后代的好处是可读性。但是您的缺点是需要增加行间距。如果您的情况仍然允许很多行距,那么一定要这样做。

如果您使用的是网络,则下划线与超链接紧密相关。因此,对于不属于链接的文本,应完全避免使用下划线。用其他方式表示您要表示的内容- 改为使用粗体斜体或全大写。


6

我相信,所有带下划线的文字一般都很小,以至于读者之间不会存在差异。这是那些东西,设计师能照顾一个很大的事情,但读者永远不会做。在我看来,这完全是一种风格选择。

我更喜欢基线位置,text-decoration-skip: ink;但在下降位置稍稍中断:即,但是,目前尚不真正支持。我到目前为止已经拥有两个类,并为后代添加了一个跨度以从中删除下划线。(通过php替换文本,因此无需创建太多代码)。

由于偏移,我将永远不会使用border-bottom技巧(或bottom属性)。我发现,与读者们相比,下划线的偏移量对他们的干扰远不止于此

我尝试改用粗体,斜体,粗体斜体或颜色变化,而不是尽可能加下划线。


为(a)提及text-decoration-skip: ink;和(b)不必将您的下划线放置在下降器底部下方而+1 。
sampablokuper

1
截至2018年3月text-decoration-skip-ink:auto | 默认情况下,Chrome(64和更高版本)未启用任何功能。初始值:自动。它似乎也将在其他浏览器中使用。
mdahlman

6

CSS 2.1规范中的描述text-decoration: underline将其效果定义为带底线,没有详细信息,但浏览器将其效果显示为略低于基线。因此,它经常剪切下级字母(和位于字母下方的音标)。

在CSS3 Text草案中,有这个text-underline-position位置,但是似乎没有任何浏览器支持它。(根据css666.com info,它受IE支持,但至少在IE 9上,该支持似乎仅限于识别属性并接受值auto(即初始值),因此它实际上不受支持。)更新:实际上,IE(第6版)提供了更多支持,但实际上,您可以将下划线放在文本(!)上方而不是其下方。

如Scott的回答和Joonas的评论中所述,您可以使用底部边框模拟下划线,然后可以很好地控制“下划线”样式。例如,这可能适用于单独站立而不是内联的带下划线的链接。对于内联文本,您可能希望在其中加下划线,例如,因为您正在对包含下划线的HTML尺寸的印刷品进行下划线,因此通常的CSS下划线可能会更好-因为此类下划线或多或少与印刷传统相对应。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.