2019-07-29
描述
使用一种安全的方法来隐藏一个元素的展现,需要使其在 DOM 中的位置可以被 JavaScript 所访问,除此外还必须让屏幕阅读器能够进行阅读。这种方法对于友好性(ADA)的开发非常有用,尤其是对于当有视觉障碍的人需要阅读更多内容时。可选的 display: none
不能被屏幕阅读器所识别,而 visibility: hidden
会占用 DOM 的物理空间。
HTML
<a class="button" href="http://pantswebsite.com"> Learn More <span class="offscreen"> about pants</span> </a>
CSS
.offscreen {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
Demo
说明
border: 0
移除所有的边框- 使用
clip
来表示该元素不需要展现任何部分 - 让该元素的高和宽为 1 像素
- 使用
margin: -1px
抵消元素的高和宽 - 隐藏元素的滚动
- 移除所有内边距
- 让元素启用绝对定位,使其在 DOM 中不占用任何的空间
浏览器支持
支持率:100%
支持情况:https://caniuse.com/#search=clip
⚠️:尽管 clip
已经被废弃,但目前浏览器对新的 clip-path
支持还很有限