如何使用javascript和css从选项框中删除焦点



我想从选择选项中删除焦点轮廓,但不想从选择中删除。我该怎么做?我为选择框做了以下操作

select:focus{
outline:0px
}

我想对选项也这样做。

当父<select>菜单的子<option>被选中/聚焦时,它将用所选内容填充<select>,并为此在元素周围显示一个聚焦环。

<select>是所有<option>子元素的父元素。

<select>菜单的显示方式也由一些因素决定,包括您当前的操作系统/浏览器:

例如: 所有<option>元素在Mac上的:hover:focus上显示为蓝色背景,例如

因此,您可以选择从<select>元素及其子元素中完全删除焦点轮廓,或者将<select>元素更改为具有<li>元素的<ul>,这些元素可以随意设置样式。

有关更多详细信息,请参阅此Stack Overflow帖子。

--

请注意:焦点轮廓的目的是让屏幕阅读器上的用户可以访问您的元素,因此,如果您删除所选元素的任何焦点行为,使用键盘导航的用户将无法判断选择了哪个项目。您可以查看W3C文档以了解最佳实践。

你可以为有可访问性问题的用户实现两种不同类型的<select>行为(例如:在检测到屏幕阅读器的情况下向元素添加一个类——这可能很有挑战性,所以看看这篇关于这件事的伟大的Hackernoon博客文章(,以确保这两种类型的用户的需求都得到了满足。

--

最新更新