• block,inline和inline-block的区别


    概念

    block是块级元素,会被现实认为是单独的一块,会单独占一行。

    常见的block元素有: DIV, FORM, TABLE, P, PRE, H1~H6, DL, OL, UL 等。

    inline内联元素,不会产生换行,一系列的inline在一行内显示,直到排满为止。

    常见的内联元素有 SPAN, A, STRONG, EM, LABEL, INPUT, SELECT, TEXTAREA, IMG, BR 等。

    inline-block:是将对象呈现为inline对象,但是对象的内容作为block呈现。

    细节对比

    display:block

    1)block元素会独自占一行,多个block元素各自新起一行,默认情况下 ,block元素宽度自动填充其父元素宽度

    2)block可以设置width,height属性,设置之后仍然独占一行

    3)block元素可以设置margin和padding属性

    display:inline

    1) inline元素不会独自占一行,多个相邻元素会排在同一行中,直到一行排不下,才会新换一行,其宽度随元素的内容而变化

    2) inline元素设置的width,height属性无效

    3)对于inline元素的margin和padding属性,水平方向的padding-left,padding-right,margin-left,margin-right有效,

        而竖直方向的padding-top,padding-bottom,margin-top,margin-bottom无效

    display:inline-block

    就是它将对象呈现inline的表现形式,即不会独占一行,而内容作为block对象呈现,即可以设置width,height,padding-top等属性

    例如:

    <style type="text/css">
            div, p {
                border: 1px solid red;
            }
            
            span {
                border: 1px solid green;
                width: 600px;
                height: 200px;
            }
            em {
                border: 1px solid green;
                width: 600px;
                height: 200px;
            }
            
            .setline {
                border: 1px solid green;
                display: inline-block;
                width: 400px;
                height: 50px;
            }
        </style>

    <div>我是块级div元素哦,我会独自占一行哦</div> <p>我也是块级p元素哦,我会独自占一行哦</p> <h1>我也是块级h1元素哦,我也会独自占一行哦</h1> <span>我是行内元素span哦,不会占一行哦,但是设置width,height对我无效哦</span> <em>我也是行内元素em哦,设置的width,height对我无效哦</em> <span class="setline">我是span,我改变display值时,width,height对我有了效果</span> <em class="setline">我是em,我改变display值时,width,height对我有了效果</em>

    对应的效果为:

    用display:inline-block 实现列表布局

    既然display:inline-block对象既可以拥有inline的表现形式,内容又能够拥有block的形式,则可以用来流式布局,例如html代码如下:

     <style type="text/css">
            .layoutImg {
                width: 840px;
                overflow: hidden;
                margin: 20px;
            }
             .layoutImg span {
                 display: inline-block;
                 width: 120px;
                 height: 160px;
                 margin: 10px 5px;
             }
              .layoutImg span label{
                  height: 25px;
                  line-height: 25px;
                  display: inline-block;
             }
        </style>
       <div class="layoutImg">
            <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
            <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
            <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
            <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
            <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
            <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
            <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
            <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
            <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
            <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
        </div>

    效果如下:

    刚学css,没有做兼容性,做得有点粗糙

    一般的列表布局采用的都是浮动布局,也可以用浮动布局实现:

    例如:

     <style type="text/css">
              .content
             {
                 width: 530px;
                 border: 1px gold solid;
             }
             
             .content ul {
                 list-style-type: disc;
                 margin: 0;
                 padding: 0;
             }
             
             .cf:after {
                 content: ".";
                 display: block;
                 clear: both;
                 font-size: 0;
                 height: 0;
                 line-height: 0;
                 visibility: hidden;
                 overflow: hidden;
             }
             
             .content ul li {
                 float: left;
                 width: 120px;
                 height: 170px;
                 padding-left: 5px;
                 list-style: none;
                 padding: 5px;
             }
              .title{
                  height: 25px;
                  line-height: 25px;
                  overflow: hidden;
                  display: inline-block;
             }
        </style>
     
        <div class="content">
            <ul class="cf">
                <li>
                    <a>
                        <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                        <span class="title">这是测试的标题哦</span>
                    </a>
                </li>
                <li>
                    <a>
                        <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                        <span class="title">这是测试的标题哦</span>
                    </a>
                </li>
                <li>
                    <a>
                        <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                        <span class="title">这是测试的标题哦</span>
                    </a>
                </li>
                <li>
                    <a>
                        <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                         <span class="title">这是测试的标题哦</span>
                    </a>
                </li>
                <li>
                    <a>
                        <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                        <span class="title">这是测试的标题哦</span>
                    </a>
                </li>
                <li>
                    <a>
                        <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                        <span class="title">这是测试的标题哦</span>
                    </a>
                </li>
                <li>
                    <a>
                        <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                       <span class="title">这是测试的标题哦</span>
                    </a>
                </li>
                <li>
                    <a>
                        <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                       <span class="title">这是测试的标题哦</span>
                    </a>
                </li>
            </ul>
        </div>

    效果如下:

  • 相关阅读:
    设置开机启动时指定非ROOT用户执行相应的脚本
    passwd的使用
    redis安装过程中遇到的问题
    linux增大交换分区
    初学Pexpect
    系统吞吐量(TPS)、用户并发量、性能测试概念和公式
    CentOS系统下各文件夹的作用
    Python的学习
    syntax error near unexpected token `then'
    10.24 小组会议记录
  • 原文地址:https://www.cnblogs.com/alice626/p/5242162.html
Copyright © 2020-2023  润新知