你的位置:首页 > 网页设计

[网页设计]两种隐藏元素方式【display: none】和【visibility: hidden】的区别及由此引出的问题


此前看到一随笔(@任天缘 原文)讲了这个问题,并总结了:

【display: none】:隐藏元素及元素内的所有内容,并且该元素的位置、宽高等其他属性值一并“消失”;

【visibility: hidden】:隐藏元素及元素内的所有内容,但是该元素的位置、宽高等属性值仍然还在。

也有总结:(@Nicholas_F の 领域 原文)

display:none ---不为被隐藏的对象保留其物理空间,即该对象在页面上彻底消失,通俗来说就是看不见也摸不到。

visibility:hidden--- 使对象在网页上不可见,但该对象在网页上所占的空间没有改变,通俗来说就是看不见但摸得到。

 

但是我觉得并不够,所以就想了一下关于他的一个加载问题。
1、有属性display:none;的结构在加载页面时,是否会同时加载呢?或则是当他变成display:block;的时候才加载的呢?
2、有属性visibility:hidden;的结构在加载页面时,是否会同时加载呢?或则是当他变成visibility:visible;的时候才加载的呢?

个人的看法是:
display:;当他的值变成block 的时候,它所在的结构才会被加载进来。
而visibility就会在加载页面的同时就已经把它加载进来了,因为他的值为hidden的时候,它所占的空间还在。