隐藏元素可以分为 3 大类
完全隐藏:元素从渲染树中消失,不占据空间
- 设置 display:none(触发重排)
- 为元素设置 hidden 属性。
视觉上的隐藏:屏幕中不可见,占据空间。
- 设置 opacity 属性为 0(可以点击,不可继承)、visibility:hidden(不可点击,可继承)(触发重绘)
- 物理移除屏幕可见区域:绝对定位的 left 和 top 值设置为 -999px、设置 margin-left 值为 -999px
- 设置宽高为 0、裁剪元素。
语义上的隐藏:读屏软件不可读,但正常占据空。
- 将 aria-hidden 属性设置为 true 使读屏软件不可读