visibility与display的区别:

visibility与display之设置元素显隐的区别

在CSS里的visibility 属性,通常其值被设置成visible 或hidden。

visibility:hidden 相当于display:none,能把元素隐藏起来,但是两者的区别在于:

  1. display:none 不显示对应的元素,在文档布局中不再分配空间(回流+重绘)

  2. visibility:hidden 隐藏对应元素,在文档布局中仍保留原来的空间(重绘)

实例
css:
在这里插入图片描述

没有设置时效果:在这里插入图片描述

设置visibility:hidden后效果:
在这里插入图片描述

设置display:none后效果:

在这里插入图片描述
visibility和display两个属性都有隐藏元素的功能。

但使用visibility属性并不能减少浏览器打开网页的速度,就是说visibility属性所控制的元素虽然不在浏览器里面显示出来,但他在浏览区里是存在的,浏览器打开网页的时候已经下载了这个元素,只是不显示而已。

并且这个元素在浏览器显示的页面中也要占他本身大小的位置,而这个位置显示的是空白而已。
而display属性设置为none,这个元素就变成了一个不显示的元素,浏览器在载入网页的时候会忽略这个元素,不会下载其内容,浏览器打开速度会比没有设置display属性前要快。

对一个元素而言,如果 display 设置其值为 none 则该元素以及所有后代元素都隐藏。
​ 在 Firefox浏览器下,display:none的元素的background-image图片是不会加载的,包括父元素display:none也是如此;然而在Chrome和Safari浏览器则不同,若父元素display:none,图片不会加载,若是自身背景图所在元素隐藏,则图片依旧会去加载;对IE浏览器而言,不管怎样都会请求图片资源。

visibility 的继承性
如果父元素设置 visibility:hidden,子元素也会看不见,究其原因是继承性,子元素继承visibility:hidden,但是,如果子元素设置了 visibility:visible,则子元素又会显示出来。这个和 display 隐藏有着质的区别。
visibility支持的属性值还有一个collapsecollapse;
当设置元素visibility:collapse后,对于普通元素,其表现等同于 visibility:hidden ,也即其会占用空间。

​ 注:visibility:collapse (作为表格用的)了解就好,对于表格相关的元素,部分现代浏览器对它的解析不准确,无实用价值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值