display:none;visibility:hidden;的区别是什么?

2020-05-27 11:10发布

5条回答
py大白
2楼 · 2020-05-27 11:30
二者都是隐藏HTML元素,在视觉效果上没有区别,但在一些DOM操作中二者还是有所不同的。 display:none; 使用该属性后,HTML元素(对象)的宽度、高度等各种属性值都将“丢失”; visibility:hidden; 使用该属性后,HTML元素(对象)仅仅是在视觉上看不见(完全透明),而它所占据的空间位置仍然存在,也即是说它仍具有高度、宽度等属性值


chai - 嘿咻嘿咻~
3楼 · 2020-05-27 14:27

很多人认为visibility: hidden和display: none的区别仅仅在于display: none隐藏后的元素不占据任何空间,而visibility: hidden隐藏后的元素空间依旧保留 ,实际上没那么简单,visibility是一个非常有故事性的属性。


1、visibility具有继承性,给父元素设置visibility:hidden;子元素也会继承这个属性。但是如果重新给子元素设置visibility: visible,则子元素又会显示出来。这个和display: none有着质的区别;


2、visibility: hidden不会影响计数器的计数,如图所示,visibility: hidden虽然让一个元素不见了,但是其计数器仍在运行。这和display: none完全不一样;


3、CSS3的transition支持visibility属性,但是并不支持display,由于transition可以延迟执行,因此可以配合visibility使用纯css实现hover延时显示效果。提高用户体验。


小猴子
4楼 · 2020-05-27 17:24

很多人认为visibility: hidden和display: none的区别仅仅在于display: none隐藏后的元素不占据任何空间,而visibility: hidden隐藏后的元素空间依旧保留 ,实际上没那么简单,visibility是一个非常有故事性的属性。


1、visibility具有继承性,给父元素设置visibility:hidden;子元素也会继承这个属性。但是如果重新给子元素设置visibility: visible,则子元素又会显示出来。这个和display: none有着质的区别;


2、visibility: hidden不会影响计数器的计数,如图所示,visibility: hidden虽然让一个元素不见了,但是其计数器仍在运行。这和display: none完全不一样;



哼哼哼哼哼
5楼 · 2020-05-27 19:46

display:none和visibility:hidden的区别是:

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

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


HUANG
6楼 · 2020-05-28 21:22

1.visibility具有继承性,其子元素也会继承此属性,若设置visibility:visible,则子元素会显示

2.visibility不会影响计数器的计算,虽然隐藏掉了,但是计数器依然继续运行着。

3.在css3的transition中支持visibility属性,但是不支持display,因为transition可以延迟执行,因此配合visibility使用纯css实现hover延时显示效果可以提高用户体验

4. display:none会引起回流(重排)和重绘 visibility:hidden会引起重绘 


相关问题推荐

  • 回答 11

    前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。简单地说,能够从 App 屏幕和浏览器上看到的东西都属于前端。前端技术一般分为前端设计和前端开发,前端设计一般可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括基...

  • 回答 9

      inputname=type=textstyle=width:200px;height:20px;

  • 回答 18

    一般在4.5个月左右。

  • 回答 15

    女生零基础学web前端是不难的。这是比较注重实际动手操作的学科,只要你肯用心学,并且有专业老师的指导,女生零基础学web前端,只需要4个月左右的时间

  • 前端适合女生学吗?2020-06-02 17:42
    回答 14

    很适合女生学习,主要是看自己在这方面有没有兴趣

  • 回答 9

    CSS主要的作用就是给网页中的dom元素设置样式,选择器则是用来匹配dom元素的。CSS中的选择器有三种,分别是标签选择器(根据元素标签名称),类选择器(根据元素class属性),id选择器(根据元素id属性),并且三种选择器可以相互结合使用例如:body{background-col...

  • 回答 17

    html、css、js、框架、小程序等

  • 回答 11

    根据自己的兴趣和实际情况来选择编程:Java、大前端、Python人工智能、大数据、Linux云计算、软件测试、PHP、网络安全设计:UI设计、产品经理、三维可视化设计、影视动画、室内设计、VR/AR运营:互联网营销、新媒体运营、短视频运营、电商运营每个人都是不同...

  • 回答 7

    HTML123倒计时JS//验证码var counts = 60;function settime(val) {     if(counts == 0) {         val.removeAttribute(disabled);         val.value = 获取验证码;         counts = 60;         return...

  • 回答 5

    HTML中有个class为box的div元素,通过修改css样式让box元素在页面水平垂直居中显示  

  • 回答 11

    HTML,CSSJavaScriptjQueryvue,React微信小程序,公众号

  • 回答 7

    对于前端初学者来说,html+css是入门前端最基础的内容,要学好并熟练运用html+css可从以下几点出发: 1.结合html+css+Photoshop,学会如何切割页面。所谓切图是指将设计稿切成便于制作成页面的图片,并完成html+css布局的静态页面。 2.打开有关浏览器网页,参...

  • 回答 7

    html如何让文字居中显示通过设置左右margin值为auto来实现居中的。我们来看个例子就是专设置属div这个块状元素水平居中:html代码:div{border:1pxsolidred;/*为了显示居中效果明显为div设置了边框*/width:200px;margin:20pxauto;/*margin-left与margin-right...

  • 回答 3

    有关块与内联元素的心得(内联元素右对齐)未改代码:目的:将日期右对齐,但下面的代码,把含日期内联元素转为块元素,再让其向右浮动,但结果显得为错位显示.未能达到预期目的. New Document #css01{width:360px;height:300px;text-align : left; float:left;margin...

没有解决我的问题,去提问