display属性剖析

首先display常用属性大家应该已经有所了解,这里主要对display的以下四大属性进行“详剖”

  • none
  • block
  • inline
  • inline-block

一、display:none

  我们知道,display具有隐藏元素的功能,但是同样我们知道visibility: hidden也具有隐藏元素的功能,下面我们通过一个例子来看一下两者的区别:

<span style="display: none;background-color: orange;width: 80px">我被隐藏</span>
<span style="background-color: orange;width: 80px">我被显示_01</span><br/>

<span style="visibility: hidden;background-color: green;width: 80px">我被隐藏</span>
<span style="background-color: green;width: 80px">我被显示_02</span>

我们可以看到显示结果是这样的:

结论:使用display:none隐藏元素时,我们可以看到浏览器没有为被隐藏的元素保留物理空间;但是需要知道即使不为元素保留物理空间,display:none依然在页面结构加载时被加载,而不是在display属性变为block时才进行加载//       此处楼主理解的原因是页面结构与页面的层叠样式是分开加载的,而display:none属于在CSS层叠样式中对结构进行了隐藏,欢迎理解更深刻准确的同学在评论区进行指正;

   而visiablity:hidden则只是看不见元素,却为元素保留了位置;

这里贴一个有意思的小程序通过jQuery来控制隐藏/显示(display:none/block)~

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>隐藏/显示三个小方块~</title>
    <script src = "https://code.jquery.com/jquery-3.2.1.js"></script>
    <style>
        .div1,.div2,.div3{
            width: 70px;
            height: 70px;
            margin:10px 10px;
            float: left;
            display: none;
        }
        .div1{background-color: orange;}
        .div2{background-color: grey;}
        .div3{background-color: green;}
    </style>
</head>
<body>
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
<button class="btn1">点我显示/隐藏三个小方块</button>
<script>
    $(document).ready(function(){
        $(".btn1").click(function(){
            $(".div1").fadeToggle();
            $(".div2").fadeToggle("slow");
            $(".div3").fadeToggle(3000);
        });
    });
</script>
</body>
</html>

二、display: block

即为我们常说的块级元素,非常常见的块级元素如div流标签、h1-h6标题标签、p段落标签、ol、ul列表标签、table表格、form交互表单等等(不在这里列举了,感兴趣的小伙伴可以自行百度一下);

它们的主要特点:1.块级元素会自动占据一定的矩形空间,可以对元素设置宽度、高度、内外边距等属性;

        2.元素前后会带有换行符;

3.块级元素中可以容纳其他块级元素或行内元素;

display: block的用法比较灵活,常见的方式如1.将<a><span>等内联标签转化为block元素以改变他们的样式;

2.导航、链接等想要进行块级化显示的元素;

一个简单的小例子将a链接转为块级元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>aaa</title>
    <style>
        a{
            display: block;
            background-color: bisque;
            width: 80px;
            height: 80px;
            text-align: center;
            line-height: 80px;
        }
    </style>
</head>
<body>
<a href="#123">#123</a>
</body>
</html>

效果如图

三、display: inline

即为我们常说的行内元素,常见的行内元素如span、a、input、img、u、abbr等;

它们的主要特点:1.行内元素前后没有换行符,行内元素会始终在同一行排列直至排满一行;

2.行内元素无法设置宽度、高度、内外边距等属性;//这一点大家向上看我们display:none中的第一段代码,我为每个span元素均设置的width:80px,但其实这段代码对行内元素并不发挥作用;

四、display:inline-block

这是一个神奇的属性,解决了颇多问题,如float浮动同一行元素不同高导致错位等,这个属性自己用的并不是很多,经过查询发现在很多地方用display: inline-block布局其实有很多优势,由于没有很多的实践,在这里先推荐一篇张鑫旭鑫大佬的文章,以后自己有更多的实践再回来补充~http://www.zhangxinxu.com/wordpress/2010/11/拜拜了浮动布局-基于displayinline-block的列表布局/

display还有一些其他属性,如果碰到新奇的用法还会随时来补充.

时间: 2024-08-29 11:37:59

display属性剖析的相关文章

深入理解和应用display属性(二)

四.inline-block 此类元素是inline + block的合体 1) margin和padding都有效:width和height都有效: .inline{ display: inline-block; width: 200px; background: red; margin: 10px; padding: 10px; } <div class="inline"><a>inline01</a></div> <div c

标签导航——display属性

定义和用法 display 属性规定元素应该生成的框的类型. 说明 这个属性用于定义建立布局时元素生成的显示框类型.对于 HTML 等文档类型,如果使用 display 不谨慎会很危险,因为可能违反 HTML 中已经定义的显示层次结构.对于 XML,由于 XML 没有内置的这种层次结构,所有 display 是绝对必要的. 注释:CSS2 中有值 compact 和 marker,不过由于缺乏广泛的支持,已经从 CSS2.1 中去除了. 默认值: inline 继承性: no 版本: CSS1

CSS display 属性

定义和用法 display 属性规定元素应该生成的框的类型. 说明 这个属性用于定义建立布局时元素生成的显示框类型.对于 HTML 等文档类型,如果使用 display 不谨慎会很危险,因为可能违反 HTML 中已经定义的显示层次结构.对于 XML,由于 XML 没有内置的这种层次结构,所有 display 是绝对必要的. 注释:CSS2 中有值 compact 和 marker,不过由于缺乏广泛的支持,已经从 CSS2.1 中去除了. 可能的值

HTML DOM display 属性

定义和用法 display 属性设置元素如何显示. 语法: Object.style.display=value 可能的值 实例 本例设置不显示元素: 1 <html> 2 <head> 3 <script type="text/javascript"> 4 function removeElement() 5 { 6 document.getElementById("p1").style.display="none&q

CSS中display属性:block、inline和inline-block的区别

最近写HTML遇到一个问题:我想设置span的宽度和高度,但是在IE9和chrome下总是不起效果.代码和效果图如下: <head> <style> span{ background-color:#43be60; width:100px; height:50px; margin-top:20px; margin-left:20px; } </style> </head> <body> <div style="background-

使用jquery控制display属性

//隐藏 $("#id").css('display','none'); //显示 $("#id").css('display','block'); 或 $("#id")[0].style.display = 'none'; $("#id")返回的是JQuery 它是个集合肯定有display属性 $("#id").show()表示display:block $("#id").hide(

CSS的display属性

网页设计中最常用的标签p.div.h1-h6(默认为块级元素),span(默认为内联元素) 1.把元素显示为内联元素和把元素显示为块级元素 <style type="text/css"> div{ display:inline; background:red;}/*区块元素将转换为内联元素*/ span{ display:block; background:green;}/*将内联元素转换为区块元素*/ </style> </head> <bo

jquery控制display属性为none或block

代码如下: //隐藏 $("#id").css('display','none'); //显示 $("#id").css('display','block'); 或 $("#id")[0].style.display = 'none'; $("#id")返回的是JQuery 它是个集合肯定有display属性 $("#id").show()表示display:block, $("#id"

CSS display属性的值及作用

display 的属性值有:none|inline|block|inline-block|list-item|run-in|table|inline-table|table-row-group|table-header-group|table-footer-group|table-row|table-column-group|table-column|table-cell|table-caption|inherit 其中常用的的有none.inline.block.inline-block.分别