display:none会不会导致其所占空间消失?

15 篇文章 0 订阅
14 篇文章 0 订阅
display:none;的验证结果是该元素所占空间消失,验证例子为:
<!DOCTYPE html>
<html>
<head>
    <title>test</title>
    <style type="text/css">
        div{
            width:500px;
            height:500px;
        }
        .num1{
            background:#000;
            /*display: none;*/
        }
        .num2{
            background:blue;
            display: inline-block;
        }
    </style>
</head>
<body>
<div class="num1"></div>
<div class="num2"></div>
</body>
</html>
效果:
display设置为none后

证明结果:display设置为none时,所占空间消失。
但是发现给第二个块元素设置为display为inline-block时并没有与第一个块元素在一行,所以将第一个块元素的display也设置为inline-block时,两个块元素才处于一行。然后想起之前有看过块元素可以和行内元素处于一行,就试了下div后插一个a标签结果:

<div class="num1"></div>
<a href="###">111</a>
<div class="num2"></div>
效果:

然后去查了下之前行内元素和块元素的概念和相关知识:

行内元素与块元素
行内元素也叫内联元素,块元素有点也叫行元素。
行级元素和块级元素
元素是通过display的属性值来划分的:block块元素 inline行内元素 inline-block行内块元素


块级元素具有以下特点:

1.总是新行上开始,占据一整行;
2.高度,行高以及外边距和内边距都可控制;
3.宽在未设置情况下与浏览器的宽度一样,与内容无关;
4.它可以容纳内联元素和其他块元素。


行内元素的特点:

1.和其他元素都在一行上;
2.内联元素不可以设置宽和高、垂直的margin和padding !!
3.宽度只与内容有关;
4.行内元素只能容纳文本和其他行内元素。

元素类型 独占一行 能设置宽高 margin,padding值
块级元素 是 是 四个都可以设置
内联元素 否 否 竖直的不可设置

在查询资料的时候有发现了一个东西就是

p元素内不能嵌套div元素

然后我去做了试验:

<p>1111<div>222</div>333</p>
效果如下:

然后查询相关解释:为什么p元素不能嵌套div元素

p元素有默认样式!最好设置margin:0;padding:0;

然后又想到文档流这个概念:
html文档流:
自窗体自上而下分成一行一行,并在每行中按从左到右的顺序排放元素。

拓展:
inlne-block有几像素的误差!!!

语义化的好处:
1.去掉或样式丢失的时候能让页面呈现清晰的结构。
2.搜索引擎的爬虫也依赖于标记来确定上下文和各个关键字的权重。
3.便于团队开发和维护。
————————————————

版权声明:本文为CSDN博主「蓝色味道」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liuxilei66/article/details/78432600

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用CSS属性"display:none"导致元素在页面消失不会空间,也不会被屏幕阅读器读取。这可能页面排版产生影响,因为其他元素填补该元素的位置,导致页面布局被重排。如果要隐藏一个元素,但仍要保留其空间,可以考虑使用"visibility:hidden"属性。 ### 回答2: display:none属性使元素完全不显示,不空间。由于该元素不空间,因此不会影响其他元素的位置,因此不会导致重排。 而如果使用visibility:hidden属性,虽然元素不可见,但是它空间,因此它保持原有的位置,因此可能导致重排。 在实际开发中,display:none通常被用来隐藏元素,并且当需要在某些条件下将元素显示出来时,我们可以通过JavaScript来动态修改元素的display属性。同时,在动态修改display属性时,考虑到性能和用户体验,我们应该尽量避免频繁修改,可以通过添加或删除类来实现动态修改。 ### 回答3: display:none不会导致重排。 display:none是将元素的display属性设置为none,从而使元素在页面中隐藏起来。与visibility:hidden不同,display:none将元素从DOM结构中完全移除,因此不会用任何空间。 由于display:none将元素从DOM中移除,因此元素不会页面布局产生影响,也不会引起重排。相反,隐藏的元素不会页面据位置,并且与其相邻的元素将直接连接在一起。 因此,在实践中,使用display:none可以实现一些非常有用的布局效果,如动态显示/隐藏页面元素等。例如,在页面上需要添加一个弹出框或面板,可以将其初始display设置为none,然后使用JavaScript来切换其显示状态,从而保证整个页面布局不会被干扰。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值