display:none,opacity:0,visibility:hidden的区别

1、display:none
(1)、浏览器不会生成属性为display: none;的元素。
(2)、display: none;不占据空间,把元素隐藏起来,所以动态改变此属性时会引起重排(改变页面布局),可以理解成在页面中把该元素删除掉一样。
(3)、display: none;不会被子孙继承,但是其子孙是不会显示的,毕竟都一起被隐藏了。
(4)、transition无效。
2、visibility:hidden
(1)、元素会被隐藏,但是不会消失,依然占据空间,隐藏后不会改变html原有样式。
(2)、visibility: hidden会被子孙继承,子孙也可以通过显示的设置visibility: visible;来反隐藏。
(3)、visibility: hidden;不会触发该元素已经绑定的事件。
(4)、visibility: hidden;动态修改此属性会引起重绘。
(5)、transition无效。
3、opacity:0;filter:alpha(opacity=0-100;(考虑浏览器兼容性的问题,最好两个都写上)
(1)、opacity:0;filter:alpha(opacity=0-100;只是透明度为100%,元素隐藏,依然占据空间,隐藏后不会改变html原有样式。
(2)、opacity:0;filter:alpha(opacity=0-100;会被子元素继承,且子元素并不能通过opacity=1,进行反隐藏。
(3)、opacity:0;filter:alpha(opacity=0-100;的元素依然能触发已经绑定的事件。
(4)、transition有效。
4、各种隐藏
{ display: none; /* 不占据空间,无法点击 / }
{ visibility: hidden; /
占据空间,无法点击 / }
{ opacity: 0; filter:Alpha(opacity=0); /
占据空间,可以点击 / }
{ position: absolute; top: -999em; /
不占据空间,无法点击 / }
{ position: relative; top: -999em; /
占据空间,无法点击 / }
{ position: absolute; visibility: hidden; /
不占据空间,无法点击 / }
{ height: 0; overflow: hidden; /
不占据空间,无法点击 / }
{ position: absolute; opacity: 0; filter:Alpha(opacity=0); /
不占据空间,可以点击 */ }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,865评论 1 92
  • 先把css隐藏页面元素有几种方法列出来,方便查看以及使用,下文再分析其中的原理 display : none ; ...
    Amfishers阅读 1,187评论 0 3
  • 大家好,我是IT修真院北京分院第23期的学员郭婷婷,一枚正直纯洁善良的WEB前端程序员。 今天给大家分享一下,修真...
    茶纸团阅读 772评论 0 0
  • 不知道大家身边是不是都有这样一个或者几个朋友——在朋友圈喜欢推荐些类似于“你为梦想的付出还远远不够”之类的文章。而...
    瑞美阅读 422评论 1 3
  • 总结一下过去的一周。真是非常忙碌的一周。 发生了一些没有预料过的事,其中之一就是因为小组长突然休假,被告知要在第二...
    Tsuya阅读 234评论 0 0