首页 > Web开发 > 详细

控制html元素的隐藏问题

时间:2014-10-28 00:30:43      阅读:324      评论:0      收藏:0      [点我收藏+]

今天,参加了京东的面试,面试官提到了一个关于css控制html元素隐藏的问题,面试的具体情况这里就不提了,现在只对元素的隐藏相关做一个小结(如有不当的地方,还望指正)。

控制元素隐藏的方式,有display:none、visibility:hidden以及overflow:hidden。(面试时我还提到了将height|width设为0的情况)

一、display:none

被隐藏的元素,在页面中不占位,空出的位置会被相邻的元素占用。

<div id="div0" style="width:100px; height:100px;background:blue"></div>
<div id="div1" style="width:100px; height:100px;background:green;display:none"></div>
<div id="div2" style="width:200px; height:200px;background:red"></div>

效果图如下:
bubuko.com,布布扣

由图可见,div1即绿色部分空出的位子已被div2占用。

二、visibility:hidden被隐藏的元素,在页面中不显示,但是它仍然占用原来的位置,不会给相邻其他元素机会,说得不好听叫做占着茅坑不拉屎。

<div id="div0" style="width:100px; height:100px;background:blue"></div>
<div id="div1" style="width:100px; height:100px;background:green;visibility:hidden"></div>
<div id="div2" style="width:200px; height:200px;background:red"></div>

效果图如下:
bubuko.com,布布扣

由图可见,虽然div1被隐藏,变为不可见状态了,但是其原来占据的位置并未被div2占用。

三、overflow:hidden

可以简单的理解成为剪切,它会把超出元素范围的部分隐藏掉,被隐藏部分,可以简单理解成display:none的应用。

<div id="div1" style="width:100px; height:100px;background:green;padding:20px;overflow:hidden">
    <div id="div2" style="width:200px; height:200px;background:red"></div>
</div>

效果图如下:
bubuko.com,布布扣

如果将overflow去掉,显示如下图:

 bubuko.com,布布扣

 

控制html元素的隐藏问题

原文:http://www.cnblogs.com/aaron-shu/p/4055480.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!