visibility,display,opacity的区别?

相同点:

visibility和display都能实现元素的显示和隐藏
display: none; 隐藏元素
display: block; 显示元素
display: inline; 元素转换为行内元素
display: inline-block; 元素转换为行内块元素


visibility:hidden; 隐藏元素
visibility: visible;显示元素


opacity: 0是视觉上消失了,透明度为0,在文档流中站位,浏览器会解析


区别:
1.性能比较

使用visibility:hidden比display:none性能上要好,display:none切换显示时,页面产生回流(回流:当页面中的一部分元素需要改变规模尺寸、布局、显示隐藏等,页面重新构建,此时就是回流。所有页面第一次加载时需要产生一次回流),而visibility切换是否显示时则不会引起回流,opacity页面不会产生回流

2.是否占据空间

display: none ; 是彻底消失,不在文档流中占位,浏览器也不会解析该元素
visibility:hidden; 是视觉上消失了,可以理解为透明度为0的效果,在文档流中占位,浏览器会解析该元素;

3.动画效果

transition对于display 是无效的;
transition对于visibility 是无效的;
transition对于opacity 是有效。

4.事件绑定

display:none的元素在页面已经不存在了,所以在它上面绑定的事件无法触发;
visibility:hidden 元素虽然占据一定空间,但是在它上面绑定的事件是无法触发;
opacity: 0元素上面绑定的事件是可以触发的。

5.子元素继承

display:none 不会被子元素继承,给子元素设置display:block;子元素不会显示;
visibility:hidden 会被子元素继承,可以通过设置子元素visibility:visible ;可以让子元素显示出来;
opacity: 0 也会被子元素继承,给子元素设置opacity: 1;子元素不会显示。

效果图如下(区别特别明显):

在这里插入图片描述

  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

吃葡萄不吐葡萄皮嘻嘻

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

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

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

打赏作者

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

抵扣说明:

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

余额充值