搜索
首页web前端css教程带有真实下划线的造型链接

Styling Links with Real Underlines

在讨论如何设置下划线样式之前,我们先来思考一个问题:我们是否应该使用下划线?

在平面设计中,下划线通常被认为不够精致。有更好的方法来强调重点、建立层级和区分标题。

Butterick 的《实用排版》中对此有明确的建议:

如果你想使用下划线,不如改用粗体或斜体。在特殊情况下,例如标题,你也可以考虑使用全部大写、小型大写或更改字号。仍然不相信吗?我建议你找一本图书、一份报纸或一本杂志看看是否有下划线文本。这种风格主要与超市小报相关联。

但网络环境有所不同。超链接是互联网的定义性特征;从互联网诞生之日起,它们就一直带有下划线。这是一个普遍理解的约定,其含义非常清晰——下划线表示链接

然而,许多流行的网站已经取消了下划线:例如《纽约时报》、《纽约杂志》、《华盛顿邮报》、彭博社、亚马逊、苹果、GitHub、推特、维基百科。谷歌首席设计师 Jon Wiley 在 2014 年解释说,从搜索结果页面移除下划线可以创造更简洁的外观。值得注意的是,这些网站中的大多数都保留了自网络诞生以来一直作为浏览器默认设置的略微不同的鲜艳蓝色 (#0000EE)。虽然这为大多数用户提供了视觉提示,但可能不足以通过 WCAG 可访问性合规性测试。

颜色不能作为唯一视觉手段来传达信息、指示操作、提示响应或区分视觉元素。 — WCAG 2.1

WCAG 并没有严格规定必须为链接使用下划线,但它确实推荐这样做。色盲用户需要能够识别链接。你可以通过其他方式来区分它们,例如使用粗体字重。或者你可以保留这个长期建立的视觉辅助功能。但如果我们要使用下划线,我们希望它们看起来漂亮。Medium 的设计师 Marcin Wichary 将完美的下划线描述为:

[…] 可见但不过分显眼——让人们意识到哪些内容是可点击的,但不会过分吸引注意力。它应该与文本保持恰当的距离,舒适地位于文本下方,即使下降体也占据相同的空间。

传统上,实现这一点需要一些CSS技巧

我们过去使用的技巧

这是一个所有开发者都熟悉的一个技巧:border-bottom。通过使用 border-bottom 模拟下划线,我们可以控制颜色和粗细。这些伪下划线有一个问题:与文本的距离过大。它们位于字母下降体的下方。你可以通过使用 line-height 来解决这个问题,但这又会带来自身的问题。类似的技术利用 box-shadow。Marcin Wichary 首创了最复杂的技术,使用 background-image 来模拟下划线。这些都是有用的技巧,但现在已经不再需要了。

设置真正的下划线样式

最终,多亏了两个新的 CSS 属性,我们可以区分链接而不会牺牲样式。

  • text-underline-offset 控制下划线的位置。
  • text-decoration-thickness 控制下划线、上划线和删除线的粗细。

根据 WebKit 博客:

你也可以为这两个属性指定 from-font,它将从使用的字体文件本身提取相关的度量值。

UX 代理机构 Clearleft 大胆地使用了(伪)下划线,通过多彩的样式清晰地吸引人们注意链接。这是一个伪下划线示例:

<code>a {
  text-decoration: none;
  border-bottom: #EA215A 0.125em solid;
}</code>

请注意,这个伪下划线明显位于字母“y”的下降体下方:

这是相同的段落,使用 DevTools 将相同的样式应用于使用新的 CSS 属性的真正下划线:

<code>a {
  text-decoration-color: #EA215A;
  text-decoration-thickness: .125em;
  text-underline-offset: 1.5px;
}</code>

你会注意到我在示例代码中使用了 em 单位。规范强烈建议使用它而不是像素,以便粗细随字体缩放。

这些属性已经在 Safari 中发布,并将出现在 Firefox 70 中。

随着微软 Edge 浏览器迁移到 Chromium,我们最终将获得对 text-decoration-style 属性的跨浏览器支持,该属性提供以下选项:实线(默认)、双线、点线、虚线和波浪线。组合使用这些新属性,可以打开一系列可能性。

然而,也许网络上对下划线的最大改进是无需开发者做任何事情就能实现的。在过去,下降体会被下划线无情地切断,这远非优雅。开发者过去常常通过应用与背景颜色匹配的文本阴影来解决这个缺点。text-decoration-skip-ink 提供了一种更好的方法来为下降体留出空间。

方便的是,它被设置为下划线的新的默认值;这意味着下划线的外观得到了改进,而大多数 Web 开发者仍然不知道这个属性的存在。如果你希望下划线跨越字形,你可以将此属性设置为 none

以上是带有真实下划线的造型链接的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Indieweb和网络企业Indieweb和网络企业Apr 19, 2025 am 11:16 AM

Indieweb是一回事!他们将举行会议和一切。纽约客甚至在写这件事:

(开发人员)增长模型(开发人员)增长模型Apr 19, 2025 am 11:08 AM

我真的很喜欢Dennis Hambeukers的帖子“设计师的成长模式”。丹尼斯只是发明了这种模型,但它基于一些现有想法,这一切

闹鬼:Web组件的挂钩闹鬼:Web组件的挂钩Apr 19, 2025 am 11:06 AM

我只是和戴夫聊天,他告诉我关于鬼魂的聊天。它的钩子,但适用于本机Web组件!很酷。我认为这样的东西存在

每周平台新闻:活动时机,网络的Google Earth,不死会话cookie每周平台新闻:活动时机,网络的Google Earth,不死会话cookieApr 19, 2025 am 10:57 AM

在本周的新闻中,Wikipedia有助于识别三个慢单击处理程序,Google Earth登上了网络,CSS中的SVG属性获得了更多的支持,以及在僵尸cookie的情况下该怎么做。

纯CSS的多线截断纯CSS的多线截断Apr 19, 2025 am 10:50 AM

本文中的诀窍仍然非常整洁又聪明,但是现在有一种标准化的方法可以做到这一点,这可能是您最好的选择。

CSS动画库CSS动画库Apr 19, 2025 am 10:46 AM

有很多库希望帮助您在网络上进行动画操作。这些是真正帮助您使用语法或的图书馆

颜色输入:深入研究跨浏览器差异颜色输入:深入研究跨浏览器差异Apr 19, 2025 am 10:40 AM

在本文中,我们将查看内部元素内部的结构,浏览器不一致,为什么它们在某个浏览器中以某种方式看起来

将(伪)元素限制到其父元的边框框将(伪)元素限制到其父元的边框框Apr 19, 2025 am 10:39 AM

您是否曾经想确保(伪)元素在其父框架之外没有显示任何内容?如果您在想象什么

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。