目录
更改背景颜色
更改文本颜色
应用盒阴影
增大元素尺寸
复制现有的悬停样式
附加:自定义默认轮廓
结论
首页 web前端 css教程 与自定义聚焦样式有点乐趣

与自定义聚焦样式有点乐趣

Apr 14, 2025 am 10:11 AM

Having a Little Fun With Custom Focus Styles

每个前端开发者都曾或将面临这样的场景:你的老板、客户或设计师认为浏览器在焦点元素上应用的轮廓与UI不匹配,并要求你将其移除。或者你甚至可能自己也想移除它。

因此,你进行了一些研究,发现这是强烈不建议的,因为焦点轮廓的存在是有原因的:它为键盘导航(使用Tab键)提供视觉反馈,让无法使用鼠标或有视觉障碍的用户知道他们在屏幕上的位置。

但这并不意味着你必须保留这个轮廓。与其移除它,不如用其他东西替换它。这样,你就可以保持界面的可访问性,并且获得更多关于外观的灵活性,以便更好地匹配你的UI。

你可以首先通过选择元素的焦点状态并应用outline: none来移除默认的浏览器轮廓。然后,你可以从以下选项中选择一个来替换它:

更改背景颜色

这最适合可以填充的元素,例如按钮。选择元素的焦点状态并为其应用对比鲜明的背景颜色。对比度越高越好,因为细微的变化可能不足以成为强烈的视觉提示,尤其是在色盲和低视力的情况下。

在下面的示例中,背景色和边框颜色都会改变;你可以选择其中一个或两个。

点击或使用Tab键聚焦以查看此状态的外观。

更改文本颜色

如果元素有任何文本,你可以选择焦点状态并更改其颜色。这对于使用mask-image应用的图标也有效;你可以选择作为焦点元素后代的图标并更改其背景颜色,就像下面的示例按钮一样。

同样,对比度是关键。你还可以考虑在文本链接上使用下划线,并将其作为更改状态的一部分,因为正如Web内容无障碍指南所述:

颜色不用作传达信息、指示操作、提示响应或区分视觉元素的唯一视觉手段。(A级) 了解成功标准1.4.1

应用盒阴影

box-shadow属性可以完成与轮廓完全相同的工作,但它功能更强大——你现在可以控制它的颜色、不透明度、偏移量、模糊半径和扩展半径。如果指定了border-radius,则盒阴影也遵循相同的圆角。

你可以用这种技术变得非常有创意(但说真的,不要这样做):

这几乎适用于任何类型的可聚焦元素,例如切换按钮、复选框、单选按钮和滑块。

增大元素尺寸

作为颜色更改的替代方案,你也可以采用细微的尺寸修改作为焦点反馈。在这个例子中,我们使用transform: scale

这里的关键是微妙。极端的尺寸变化可能会导致内容重排,更不用说对于那些喜欢减少运动的人来说是一种糟糕的体验了。

复制现有的悬停样式

如果元素已经具有对比鲜明的悬停样式,你可以简单地采用该样式并将其也应用于焦点状态。这是一个相当优雅的解决方案,因为你无需向界面添加任何新的颜色或轮廓。

这是一个示例,其中焦点状态和悬停状态都采用了与元素默认样式的背景形成高对比度的样式:

附加:自定义默认轮廓

到目前为止,我们所看到的一切都假设我们想要完全移除焦点轮廓。我们不必这样做!事实上,它是一个我们可以自定义的边框。

button:focus {
  outline: 3px dashed orange;
}
登录后复制

如果我们想微调样式,这可以用这种方式编写:

button:focus {
  outline-width: 3px;
  outline-style: dashed;
  outline-color: orange;
}
登录后复制

我们拥有的另一个超能力是outline-offset属性,它与outline速记属性分开,但可以与之一起使用来更改焦点环的位置:

button:focus {
  outline: 3px dashed orange;
  outline-offset: 10px;
}
登录后复制

结论

你可以混合和匹配所有这些选项,以获得适合界面中每个组件类型的自定义样式。

值得重申的是:在采用自定义焦点状态时,不要忘记除了颜色之外还要使用鲜明的颜色对比度和其他视觉提示。当然,我们都希望获得与我们的设计相符的体验,但我们可以在此过程中遵守良好的可访问性实践。W3C 建议使用此工具来测试颜色值相对于 WCAG 指南的对比度。

以上是与自定义聚焦样式有点乐趣的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

VUE 3 VUE 3 Apr 02, 2025 pm 06:32 PM

它的出局!恭喜Vue团队完成了完成,我知道这是一项巨大的努力,而且很长时间。所有新文档也是如此。

在CI/CD上有点 在CI/CD上有点 Apr 02, 2025 pm 06:21 PM

我说的“网站”比“移动应用程序”更合适,但我喜欢Max Lynch的框架:

您可以从浏览器获得有效的CSS属性值吗? 您可以从浏览器获得有效的CSS属性值吗? Apr 02, 2025 pm 06:17 PM

我有人写了这个非常合法的问题。 Lea只是在博客上介绍了如何从浏览器中获得有效的CSS属性。那样的是这样。

在WordPress块编辑器中使用Markdown和本地化 在WordPress块编辑器中使用Markdown和本地化 Apr 02, 2025 am 04:27 AM

如果我们需要直接在WordPress编辑器中向用户显示文档,那么最佳方法是什么?

带有粘性定位的堆叠卡和一点点的杂物 带有粘性定位的堆叠卡和一点点的杂物 Apr 03, 2025 am 10:30 AM

前几天,我发现了科里·金尼文(Corey Ginnivan)网站上的这一点,当您滚动时,彼此之间的卡片堆放集。

比较浏览器的响应式设计 比较浏览器的响应式设计 Apr 02, 2025 pm 06:25 PM

这些桌面应用程序中有许多目标是同时在不同的维度上显示您的网站。因此,例如,您可以写作

如何将CSS网格用于粘头和页脚 如何将CSS网格用于粘头和页脚 Apr 02, 2025 pm 06:29 PM

CSS网格是一系列属性的集合,旨在使布局比以往任何时候都容易。像任何东西一样,那里有一点学习曲线,但是网格是

Google字体可变字体 Google字体可变字体 Apr 09, 2025 am 10:42 AM

我看到Google字体推出了新设计(Tweet)。与上一次大型重新设计相比,这感觉更加迭代。我几乎无法分辨出区别

See all articles