控制html元素的隐藏问题

今天,参加了京东的面试,面试官提到了一个关于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>

效果图如下:

由图可见,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>

效果图如下:

由图可见,虽然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>

效果图如下:

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

时间: 2024-11-07 07:21:21

控制html元素的隐藏问题的相关文章

控制页面元素的显示和隐藏

CreateTime--2017年7月13日07:30:55Author:Marydon js控制页面元素的显示和隐藏&<c:if></c:if>标签控制页面元素的显示和隐藏 说明:本文的重点在使用后者实现 实例: 医嘱类型分为:长嘱,临嘱,中医三种,页面默认只显示长嘱信息,点击临嘱或中医显示对应信息:选中变色. CSS部分: /* 医嘱:长嘱,临嘱,中医样式显示 Start*/ .yz_td1 { line-height: 28px; height: 28px; padd

jquery控制元素的隐藏和显示的几种方法。

组织略显凌乱,请耐心看! 使用jquery控制div的显示与隐藏,一句话就能搞定,例如: 1.$("#id").show()表示为display:block, $("#id").hide()表示为display:none; 2.$("#id").toggle()切换元素的可见状态.如果元素是可见的,切换为隐藏的:如果元素是隐藏的,则切换为可见的. 3.$("#id").css('display','none');//隐藏 $(

元素显示隐藏的9种思路

× 目录 [1]display [2]visibility [3]hidden[4]opacity[5]overflow[6]clip[7]transform[8]覆盖[9]偏移 前面的话 在网页制作中,元素的显示隐藏是非常常见的需求.本文将介绍元素显示隐藏的9种思路 思路一: display 对于元素显隐来说,最常见就是display:none | display:block,但是使用这种方法有个问题,元素的display属性在隐藏前并不都是block,还有可能是inline.inline-b

细说HTML元素的隐藏和显示

CSS文档对HTML的显示和隐藏有2个属性可供选择: 1.display 2.visiblity 这2个有什么区别呢? display: display版本:CSS1/CSS2 兼容性:IE4+ NS4+ 继承性:有 语法: display : block | none | inline | compact | marker | inline-table | list-item | run-in | table | table-caption | table-cell | table-colum

JS/jquery实现鼠标控制页面元素显隐

最近因为公司网站要上一个活动广告横幅,当用户鼠标划过时显隐二维码.像这种鼠标事件控制页面元素显隐的情况,码农们会经常遇到,可以通过javascript或jquery代码实现,下面就几种常见需求一起归纳一下. mouseout和mouseleave 这里需要特别注意mouseout与mouseleave的区别.我们通过下面代码示例来看一下: <p style="color:#333333;font-family:-apple-system, " font-size:16px;&qu

【HTML5】用脚本控制交互元素details元素的使用

1.源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Con

h5之scrollIntoView控制页面元素滚动

如果滚动页面也是DOM没有解决的一个问题.为了解决这个问题,浏览器实现了一下方法,以方便开发人员如何更好的控制页面的滚动.在各种专有方法中,HTML5选择了scrollIntoView()作为标准方法.scrollIntoView()可以在所有的HTML元素上调用,通过滚动浏览器窗口或某个容器元素,调用元素就可以出现在视窗中.如果给该方法传入true作为参数,或者不传入任何参数,那么窗口滚动之后会让调动元素顶部和视窗顶部尽可能齐平.如果传入false作为参数,调用元素会尽可能全部出现在视口中(可

关于元素的隐藏

又是好久没写博客了.每每想写篇博客,却发现比我写得好的多不胜数. 当然,写博客的初心不会为了攀比和炫耀,但看到别人写得如此甚好,我只能自惭形秽了. 于是选择了摘抄在自己的笔记里(oneNote中),在此也向那些写博客的人表达敬意.因为你们,我收获了很多. 因为你们,很多次遇到难题,我迎面而解.也感激那些无私帮助我的人. 还是就此步入正题好了,我怕偏题太远. 关于元素的隐藏: 1.display:none;  ----不占空间 2.visibility:hidden; ----占空间,无法点击 2

前端性能优化-精确的控制dom元素

6.dom操作 精确的控制dom元素(id 选择器) 1.浏览器的开发者工具针对页面进行调优 Network窗口 Stalled(阻塞) DNS Lookup(域名解析) dns缓存 建立持久连接 Initial connection(初始化连接) SSL(包含于HTTPS连接中) Waiting(等待响应) Request sent(发送请求) Content Download(下载) 2. js调试 设置在DOM node发生变化时触发断点 dom 右键 Break on 可以设置成这个节点