html 自动隐藏属性,css隐藏页面元素的几种方法比较

一说起隐藏HTML页面上的元素,很多人第一反应就是设置元素的css属性display:none;值,这是一种最常见的隐藏页面元素方法。本篇文章我们就一起看看使用CSS隐藏页面元素的方法,以及它们的区别。

8e8c5c40dc576aca42c736f6a0e9446d.png

CSS

方法1-display:none

正如上文说的一样,最简单也最粗暴的方法就是设置元素的display属性为none;

f79a713676240b4e6e1879e604e645fe.png

display:none;

设置为display:none;的元素将不会再占用页面空间,其占用的空间会被其他元素所占有,从而会引起浏览器的重排和重汇。

方法2-visibility: hidden

另外一种方法是设置元素的visibility属性为hidden。

9a4b14714790bd6529386eae65cb0ba4.png

visibility: hidden

这种做法虽然能够隐藏元素,但是该元素仍会占用页面空间,因此只会导致浏览器的重汇而不会引起重排。

如果希望元素隐藏后不会引起页面布局的变化,则推荐使用visibility:hidden;方式。

方法3-opacity:0

设置元素透明度opacity属性为0,也可以隐藏页面元素。

63e5567be844f1530ed60089013e8dd6.png

opacity:0

在呈现上与visibility:hidden;方式一样,同样会占据页面空间。

差异性-页面布局

对页面布局的影响主要是看是否会引起浏览器的重汇和重排,对应的差异如下图所示。

fb6dc2d23c9e93b1699e6e2581874a03.png

页面布局差异

差异性-事件绑定

display:none;的元素会直接从页面上消失,因此在该元素上绑定的事件不会生效。

visibility: hidden;的元素不会触发绑定的事件。

opacity:0; 的元素会触发绑定的事件,例如点击会触发click函数。

我们可以通过以下的例子来看看。

首先我们定义两个div,分别设置为visibility: hidden;和opacity:0,在两个div上分别绑定一个click事件。

a1601af84e8d2ecd5313fd306b5c8753.png

定义div元素

2a3b856e06b5b8a9a3d08e22bd1c44d6.png

绑定的事件

当我们在两个元素都进行点击时,可以在控制台看到如下输出结果。

8a0f823ca623c5c2bb93ea01dc1d9b14.png

结果

从上述结果可以看出和上述结论一致。

差异性-动画属性

display:none;的元素会直接从页面消失,因此定义transition效果完全无效。

visibility:hidden;的元素会在transition设置的时间内消失,但是没有动画效果。

opacity:0;的元素可以和正常元素一样,从页面以动画效果消失。

同样我们可以通过以下这个例子来看看。

首先,我们定义两个div,并设置其transition属性。

6739e336c96eb99cbebd0cfeb2184e0e.png

div元素

06ea42ee79ff8312b4c96d79dc1df609.png

定义transition效果

我们通过将鼠标移至元素上,可以看到两者的差异,从而验证了上述结论的正确性。

结束语

本篇文章主要讲解了使用CSS隐藏元素的几种常用方法,并讲解了它们之间的区别,以便大家在特定的场景中进行选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值