城乡建设部统计网站,网上购物系统概述,青岛公路建设集团网站,楼盘网站建设案例https://github.com/febobo/web-interview 3.隐藏元素的方法
diplay:none; 元素在页面消失#xff0c;并且不占据页面空间
opacity:0; 设置元素透明度#xff0c;仅元素不可见#xff0c;占用空间
visibility:hidden; 元素不可见#xff0c;占据页面空间#xff0c;无… https://github.com/febobo/web-interview 3.隐藏元素的方法
diplay:none; 元素在页面消失并且不占据页面空间
opacity:0; 设置元素透明度仅元素不可见占用空间
visibility:hidden; 元素不可见占据页面空间无法响应点击事件position:absolute; 从当前位置踢出去
clip-path 将元素裁剪掉
设置height、width模型属性为0 元素存在当看不见①display:none
设置元素的display为none是最常用的隐藏元素的方法
.hide {display:none;
}将元素设置为display:none后元素在页面上将彻底消失
元素本身占有的空间就会被其他元素占有也就是说它会导致浏览器的重排和重绘
消失后自身绑定的事件不会触发也不会有过渡效果
特点元素不可见不占据空间无法响应点击事件
②visibility:hidden
设置元素的visibility为hidden也是一种常用的隐藏元素的方法
从页面上仅仅是隐藏该元素DOM结果均会存在只是当时在一个不可见的状态不会触发重排但是会触发重绘
.hidden{visibility:hidden
}给人的效果是隐藏了所以他自身的事件不会触发
特点元素不可见占据页面空间无法响应点击事件
③opacity:0
opacity属性表示元素的透明度将元素的透明度设置为0后在我们用户眼中元素也是隐藏的
不会引发重排一般情况下也会引发重绘 如果利用 animation 动画对 opacity 做变化animation会默认触发GPU加速则只会触发 GPU 层面的 composite不会触发重绘 .transparent {opacity:0;
}由于其仍然是存在于页面上的所以他自身的的事件仍然是可以触发的但被他遮挡的元素是不能触发其事件的
需要注意的是其子元素不能设置opacity来达到显示的效果
特点改变元素透明度元素不可见占据页面空间可以响应点击事件
④ 设置height、width属性为0
将元素的marginborderpaddingheight和width等影响元素盒模型的属性设置成0如果元素内有子元素或内容还应该设置其overflow:hidden来隐藏其子元素
.hiddenBox {margin:0; border:0;padding:0;height:0;width:0;overflow:hidden;
}特点元素不可见不占据页面空间无法响应点击事件
⑤position:absolute
将元素移出可视区域
.hide {position: absolute;top: -9999px;left: -9999px;
}特点元素不可见不影响页面布局
⑥clip-path
通过裁剪的形式
.hide {clip-path: polygon(0px 0px,0px 0px,0px 0px,0px 0px);
}特点元素不可见占据页面空间无法响应点击事件
小结
最常用的还是display:none和visibility:hidden其他的方式只能认为是奇招它们的真正用途并不是用于隐藏元素所以并不推荐使用它们。
区别
关于display: none、 visibility: hidden、opacity: 0的区别如下表所示
display: nonevisibility: hiddenopacity: 0页面中不存在存在存在重排会不会不会重绘会会不一定自身绑定事件不触发不触发可触发transition不支持支持支持子元素可复原不能能不能被遮挡的元素可触发事件能能不能