CSS中的元素隐藏方式

前段时间,在写一个注册框时,先将该注册框隐藏,当点击按钮后显示。谁知隐藏后会遮挡住其他按钮,使其失效。后来查找资料,才发现是因为我选择隐藏方式的问题。该注册框隐藏后,仍然占有内存,点击时,可以运行。
在隐藏元素的方式中,主要有以下思路:
1、通过元素位移来进行“显示隐藏”。
2、利用display、 Visibility等属性。
3、利用z-index来调整元素的堆叠顺序。
4、利用opacity调整透明度。
5、调整元素的长宽。
至于这些方式的内存占用情况,有位博主早已有详细解释,
文章链接为(http://www.zhangxinxu.com/wordpress/2012/02/css-overflow-hidden-visibility-hidden-disabled-use/)
以下内容,是我从该博文上的部分摘录。

{ display: none; /* 不占据空间,无法点击 */ }

{ visibility: hidden; /* 占据空间,无法点击 */ }

{ position: absolute; clip:rect(1px 1px 1px 1px); /* 不占据空间,无法点击 */ }

{ position: absolute; top: -999em; /* 不占据空间,无法点击 */ }

{ position: relative; top: -999em; /* 占据空间,无法点击 */ }

{ position: absolute; visibility: hidden; /* 不占据空间,无法点击 */ }

{ height: 0; overflow: hidden; /* 不占据空间,无法点击 */ }

{ opacity: 0; filter:Alpha(opacity=0); /* 占据空间,可以点击 */ }

{ position: absolute; opacity: 0; filter:Alpha(opacity=0); /*
不占据空间,可以点击 */ }

{
zoom: 0.001;
-moz-transform: scale(0);
-webkit-transform: scale(0);
-o-transform: scale(0);
transform: scale(0);
/* IE6/IE7/IE9不占据空间,IE8/FireFox/Chrome/Opera占据空间。都无法点击 */ }

{
position: absolute;
zoom: 0.001;
-moz-transform: scale(0);
-webkit-transform: scale(0);
-o-transform: scale(0);
transform: scale(0);
/* 不占据空间,无法点击 */ }

猜你喜欢

转载自blog.csdn.net/ONEMOOC/article/details/71479843