美文网首页饥人谷技术博客
区分display:block;display:inline;d

区分display:block;display:inline;d

作者: 飞天小猪_pig | 来源:发表于2019-09-23 22:54 被阅读0次

    每一个元素都有默认的display属性值,对于一些开始学CSS的朋友们,很容易混淆display:block;inline:inline-block这三种用法,下面将具体细说每一种的具体用法和实例相结合。

    一、display:block(块级元素)

    1.一个block元素总是会占据一行,当有多个block元素就要新起多行对应。
    HTML:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>JS Bin</title>
    </head>
    <body>
    <div id='div1'>11</div>
    <div id='div2'>22</div>
    </body>
    </html>
    

    CSS:

    #div1{
    border:1px solid red;
    }
    #div2{
    border:1px solid red;
    }
    

    效果图:


    1.png

    2、block元素可以设置width,默认情况下,block元素的宽度自动填满其父类元素宽度;即使设置了宽度,block仍然是独占一行。

    #div1{
    border:1px solid red;
    width:100px;
    }
    #div2{
    border:1px solid red;
    width:100px;
    }
    

    效果图:


    2.png

    3、block元素可以设置height,默认情况下,block元素的高度会自动拓展包含子元素的内容。

    #div1{
    border:1px solid red;
    width:100px;
    height:100px;
    }
    #div2{
    border:1px solid red;
    width:100px;
    height:100px;
    }
    

    效果图:


    3.png

    4、block元素可以设置padding和margin属性

    #div1{
    border:1px solid red;
    width:50px;
    height:50px;
    padding:20px;
    margin:20px
    }
    #div2{
    border:1px solid red;
    width:50px;
    height:50px;
    }
    

    效果图:只对div1增加了padding和margin属性,参考div2进行对比。


    4.png

    5、block元素不能实现vertical-align这个属性。

    总结:

    <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素常见的例子,我们可以设置宽度和高度,同时可以控制元素的padding和margin属性。

    二、display:inline(行内元素)

    1、inline元素不会独占一行,多个相邻的行内元素会排列在一行内,直到排不下再新换一行。
    HTML:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>JS Bin</title>
    </head>
    <body>
    <span id="span1">11</span>
    <span id="span2">22</span>
    </body>
    </html>
    

    CSS:

    #span1{
    border:1px solid red;
    }
    #span2{
    border:1px solid red;
    }
    

    效果图:


    5.png

    2、inline元素设置width和height属性无效,宽度由元素内容决定。非替换行内元素(p、label等)的行框高由line-height决定,替换行内元素(img、input、textarea等)的行框高由height、margin、padding、border决定。

    #span1{
    border:1px solid red;
    width:100px;
    height:100px;
    }
    #span2{
    border:1px solid red;
    }
    

    效果图:只新增span1中宽度和高度,span2作为对比参考


    5.png

    3、margin和padding 在竖直方向上无效,在水平方向上有效。

    #span1{
    border:1px solid red;
    padding:20px;
    margin:20px;  
    }
    #span2{
    border:1px solid red;
    }
    

    效果图:只新增span1中padding和margin,span2作为对比参考


    6.png

    4、inline元素受vertical-align属性和white-space属性控制

    总结:

    <span>, <a>, <label>, <input>, <img>, <strong> 和<em>是inline元素常见的例子,设置宽度和高度对inline元素没有影响,设置padding和margin在竖直方向上无效,在水平方向上有效。

    三、display:inline-block

    既具有 block 元素可以设置宽高的特性,同时又具有 inline 元素默认不换行的特性。当然不仅仅是这些特性,比如 inline-block 元素也可以设置 vertical-align 属性。但是不是所有浏览器都支持这个属性,例如IE6和7就不支持这个属性,要实现这个属性必须利用其它办法。
    HTML :

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>JS Bin</title>
    </head>
    <body>
    <div id="div1">11</div>
    <span id="span1">22</span>
    </body>
    </html>
    

    CSS:

    #div1{
    border:1px solid red;
    width:50px;
    height:50px;
    padding:20px;
    margin:20px;
    display:inline-block;
    }
    #span1{
    border:1px solid red;
    width:50px;
    height:50px;
    padding:20px;
    margin:20px;
    display:inline-block;
    }
    

    效果图:div1实现了不分行,span1实现了设置宽度和高度


    7.png

    相关文章

      网友评论

        本文标题:区分display:block;display:inline;d

        本文链接:https://www.haomeiwen.com/subject/jeamuctx.html