抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

Mr.wang

Time flies and people come and go

利用css对于Dom元素的隐藏

隐藏类型

屏幕并不是唯一的输出机制,比如说屏幕上看不见的元素(隐藏的元素),其中一些依然能够被读屏软件阅读出来(因为读屏软件依赖于可访问性树来阐述)。为了消除它们之间的歧义,我们将其归为三大类:

  • 完全隐藏:元素从DOM树中消失,不占据空间。
  • 视觉上的隐藏:屏幕中不可见,占据空间。
  • 语义上的隐藏:读屏软件不可读,但正常占据空间。

    完全隐藏

1.display 属性

1
display: none;

2.hidden 属性

HTML5 新增属性,相当于 display: none

1
2
<div hidden>
</div>

视觉上的隐藏,在页面中还存在

3.利用 position 和 盒模型 将元素移出可视区范围

设置 posoitionabsolutefixed,通过设置 topleft 等值,将其移出可视区域。

1
2
position:absolute;
left: -999px;

设置 positionrelative,通过设置 topleft 等值,将其移出可视区域。

1
2
position: relative;
left: -999px;

设置 margin 值,将其移出可视区域范围(可视区域占位)。

1
2
margin-left: -99999px;
height: 0;

3.利用 transfrom

缩放

1
2
transform: scale(0);
height: 0;

移动 translateX, translateY

1
2
transform: translateX(-99999px);
height: 0

旋转 rotate

1
transform: rotateY(90deg) //直角在界面上形成线性视觉屏蔽

4.设置其大小为0

宽高为0,字体大小为0:

1
2
3
height: 0;
width: 0;
font-size: 0;

宽高为0,超出隐藏:

1
2
3
height: 0;
width: 0;
overflow: hidden;

5.设置透明度为0

1
opacity: 0;

6.visibility属性

1
visibility: hidden;

7.层级覆盖,z-index 属性

1
2
position: relative;
z-index: -999;
再设置一个层级较高的元素覆盖在此元素上。#####

8.clip-path 裁剪

1
clip-path: polygon(0 0, 0 0, 0 0, 0 0);

语义上的隐藏

评论