不要给<a>设置outline:none
outline属性有什么作用
原文链接 a{outline:none} do not do it
当用户使用tab键进行链接切换时,该属性会在当前选中的链接(获得焦点)使用该属性,一般来说是虚线框
的长方形。这对于没有使用鼠标输入的用户而言尤其有用,它可以作为视觉反馈来告知用户当前的输入。所以说
如果设置outline属性为none,则对这些人来说将会是很差的用户体验。
给链接元素设置获得焦点属性是非常有必要的,对任何使用键盘来操作用户界面的模式,焦点指示器需可见。
为什么有些开发者喜欢删除该属性
主要是由于涉及的虚荣心,或者是完全忘记了上述提到的这一点。
开发者常用的css reset往往将outline属性删除,Eric Meyers的css reset也是如此。但是Eric也说了,开发者
需要额外定义焦点样式。
/* remember to define focus styles! */ :focus { outline: 0; }
我们要记住注释的部分,一定要重新定义“焦点样式”。
如果要删除该属性,需要设置替换属性
尽量不要删除outline属性,但是也有一些其他方法来设置键盘获取焦点链接样式:
- 设置背景颜色。如:#test1 a:focus { background: #FFFF00; }
- 设置字体样式。 如: #test2 a:focus { color: #FF6600; }
- 设置outline属性。 如:#test3 a:focus { outline: #FF0000 dotted medium; }
- 设置高亮属性。 如:#test4 a:focus { color: #FFFFFF; background: #FF0000; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了