探究元素隐藏的几种方式及其区别

前言

本文主要讲解前端元素隐藏的几种方式及它们之间有什么区别。

方式

display:none

语法格式:display:none
元素处理:页面渲染中直接删除该元素,在页面及其F12中该元素的id和空间都被清除,不占据任何空间。
布局影响:别的元素会占据display隐藏元素的位置。
注:隐藏后无法通过CSS选择器选择该元素。

visibility: hidden

语法格式: visibility:hidden
元素处理:仍占据空间,但内容不可见。
布局影响:隐藏元素仍然保留原空间位置。
注:无法通过CSS选择器选择该元素。

opacity: 0

语法格式:pacity:0
元素处理:仍占据空间,只是内容透明度为0.
布局影响:隐藏元素仍然保留原有的布局空间。
注:可通过CSS选择器选择该元素。

position: absolute; top: -9999px

语法格式:position:absolute;top:-9999px;
元素处理:定位到屏幕上方位置,使其不可见。
布局影响:隐藏元素仍然保留原有布局空间。
注:注意父级定位设置,可能影响其他元素布局。

JavaScript操作样式

可以使用**document.getElementById(‘ElementId’).style.display=“none”**使其元素不可见,或使用setAttribute(‘hidden’, true)进行隐藏。

区别

重排重绘会影响前端性能,这里主要根据它们是否重排重绘来区分它们的区别。

概念

重排:浏览器根据DOM结构和CSS样式计算元素的几何属性(位置、尺寸等),并确定它们在页面中的精确位置。当发生重排时,浏览器会重新计算每个受影响元素的布局信息,并更新渲染树。重排可能会引起其他元素的移动、调整大小或重新绘制。

重绘:浏览器根据最新的样式信息对已布局的元素进行重新绘制。在重绘阶段,浏览器会将元素的可视外观(比如背景颜色、文本颜色等)应用到屏幕上。重绘不会改变元素的布局信息,只是重新绘制元素的可视外观。

在性能方面,重排对网页的影响通常比重绘更显著。因为重排会重新调用整个渲染树,期间可能发生卡顿感或闪烁的效果。重绘只是对颜色样式进行重新绘制,没有占用太多的资源。

它们是否重排重绘

display:none会导致重排,因为它已经被渲染树移除,移除后,将不会发生重绘。
visibility: hidden不会导致重排,因为它们并没有改变原有渲染布局,但是会导致重绘。因为元素可见性被更改。
opaticy: 0不会导致重排,因为它们并没有改变原有渲染布局,但是会导致重绘。因为元素透明度被更改。
position会导致重排,因为它们布局发生改变,同时它们会导致重绘,因为它们的元素位置被修改。

在不同的场景下使用不同的隐藏元素方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃巧克li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值