display:none、visiblity: hidden、opacity: 0区别

display:none、visiblity: hidden、opacity: 0均是用来隐藏元素的。

1、display: none。

DOM结构:被设置了display:none的元素浏览器不会渲染该元素在页面中,也根本不会占据位置;

事件:无法进行事件监听,点击事件没有生效;

性能:通过js无法获取到该元素身上的一些属性,并且通过动态的改变的display属性,会让页面反复渲染,引起页面重排,性能较差;

继承:不会被子类继承,因为自己没被渲染;

transition: 不支持;

如图:

2、 visibility:hidden

DOM结构:被设置了 visibility:hidden的元素浏览器会渲染该元素在页面中,但是被隐藏,也就是说依旧占据位置;

事件:无法进行事件监听,点击事件没有生效;

性能:动态的改变的visibility属性,不会让页面反复渲染该元素,发生的是重绘,性能较好;

继承:会被子类继承,子类要想显示可以给子类添加visibility:visible。

transition: 快速显示,过渡慢慢消失

 

3、opacity:0

DOM结构:被设置了 opacity:0的元素浏览器会该元素渲染在页面中,但是被隐藏,因为透明度为0,也就是说依旧占据位置;

事件:可以进行事件监听;

性能:动态的改变的opacity属性,不会重排重绘,性能较好;

继承:会被子类继承,但子类并不能添加opacity:1来显示;

transition: 过渡可以生效;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值