美文网首页
inline、block和inline-block的区别和相同处

inline、block和inline-block的区别和相同处

作者: 奋斗live | 来源:发表于2020-03-10 14:14 被阅读0次
    一、行内、块级、 行内块元素

    首先我们要先了解以上三个的定义和区别

    a、行内元素

    与其他行内元素并排,不可设置长宽,默认宽度即内容的宽度

    b、块级元素

    独占一行,可设置长宽,默认宽度为父元素的宽度。

    c、行内块元素

    结合了行内元素和块级元素的优点。可设置长宽,也可以和其他行内元素并排

    inline是行内元素,block是块级元素,inline-block是行内块元素

    二、相互转换

    可以采用display: inline(转换成行内元素)、block(转换成块级元素)、inline-block(转换成行内块元素)
    如下图

    <html>
    <style>
        .cat{background-color: red;display: block;}
        .dog{background-color: blue;display: block;}
        .pig{background-color: black;display: inline;}
        .horse{background-color: green;display: inline;}
        .chicken{background-color: #9cb945;display: inline-block;width: 100px;height: 100px;}
        .frog{background-color: #aa00aa;display: inline-block;width: 100px;height: 100px;}
    </style>
    <body>
    <div>
        <span class="cat">cat</span>
        <span class="dog">dog</span>
    </div>
    <div>
        <div class="pig">pig</div>
        <div class="horse">horse</div>
    </div>
    <div>
        <div class="chicken">chicken</div>
        <div class="frog ">frog</div>
    </div>
    </body>
    </html>
    
    image.png
    三、注意

    1、当inline-block遇到同类时(inline、inline-block),谁的margin、padding和line-height的大,就按照谁的来显示,如下

    <html>
    <style>
        .chicken{background-color: #9cb945;display: inline-block;width: 100px;height: 100px;margin-top: 50px;}
        .frog{background-color: #aa00aa;display: inline-block;}
        .cat{background-color: red;display: inline}
        .dog{display: inline;margin-top: 20px;}
    </style>
    <body>
    <div>
        <div class="chicken">chicken</div>
        <div class="frog ">frog</div>
        <div class="cat ">cat</div>
        <div class="dog ">dog</div>
    </div>
    </body>
    </html>
    
    image.png

    2、父元素设置为inline-block
    如果要实现如下图所示,frog和cat在chicken和dog中间,


    image.png

    可以设置中间的parent为inline-block,然后其中元素采用块级元素进行显示

    <html>
    <style>
        .chicken{background-color: #9cb945;display: inline-block;line-height: 0px;vertical-align:top;}
        .parent{display: inline-block;}
        .frog{background-color: #aa00aa;display: block;}
        .cat{background-color: red;display: block;}
        .dog{display: inline;margin-top: 20px;}
    </style>
    <body>
    <div>
        <span class="chicken">chicken</span>
        <span class="parent">
            <div class="frog ">frog</div>
              <div class="cat ">cat</div>
        </span>
        <span class="dog ">dog</span>
    </div>
    </body>
    </html>
    

    3、块级元素能够设置width和height,而行内元素则是无效。当块级元素设置了长宽,当内容超过了尺寸的时候,就会涉及到元素的呈现行为,对于溢出元素内容区的元素如何处理,主要是通过overflow来指定(visible:内容不会被修剪,会呈现在元素之外、hidden:内容被修剪,并且其余内容不可见、scroll:内容被修剪,但是会显示滚动条、auto:内容如果被修剪,显示滚动条、inherit 从父元素继承overflow的属性值)
    4、行内元素的水平方向margin、padding有效,垂直方向则无效。
    5、若执意要让行内元素的margin、padding、width和height有效,可以采用float(浮动)、固定定位和绝对定位来实现,如下

    <html>
    <style>
        .chicken{display:block;background-color: #9cb945;width: 100px;height: 100px;}
        .parent{margin-top:50px;margin-left: 20px;width: 100px;height: 100px;position: absolute;}
        .dog{}
    </style>
    <body>
    <div>
        <span class="chicken">chicken</span>
        <span class="parent">
            parent
        </span>
        <span class="dog ">dog</span>
    </div>
    </body>
    </html>
    
    image.png

    相关文章

      网友评论

          本文标题:inline、block和inline-block的区别和相同处

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