CSS布局(不完全)总结

CSS布局(不完全)总结

实现水平居中布局的几种方式

方法一:

    <div class="parent">
        <div class="son">水平居中</div>
    </div>

通过以下CSS代码实现水平居中布局

    .parent{
        text-align:center;
    }
    .son{
        display:inline-block;
    }

方法二:

    <div class="parent">
        <div class="son">水平居中</div>
    </div>

通过以下CSS代码实现水平居中布局

    .son{
        display:table;
        margin:0 auto;
    }

方法三:

    <div class="parent">
        <div class="son">水平居中</div>
    </div>

通过以下CSS代码实现水平居中布局

    .parent{
        position:relative;
    }
    .son{
        position:absolute;
        left:50%;
        transform:translateX(-50%);
    }

实现垂直居中布局的几种方式

方法一:

    <div class="parent">
        <div class="son">垂直居中</div>
    </div>

通过以下CSS代码实现垂直居中布局

    .parent{
        display:table-cell;
        vertical-align:middle;
    }

方法二:

    <div class="parent">
        <div class="son">垂直居中</div>
    </div>

通过以下CSS代码实现垂直居中布局

    .parent{
        position:relative;
    }
    .son{
        position:absolute;
        top:50%;
        transform:translateY(-50%);
    }

实现居中布局(水平+垂直)的几种方式

方法一:

    <div class="parent">
        <div class="son">垂直居中</div>
    </div>

通过以下CSS代码实现居中布局

    .parent{
        position:relative;
    }
    .son{
        position:absolute;
        top:50%;
        left:50%;
        transform:translateX(-50%)
        transform:translateY(-50%);
    }

方法二:

    <div class="parent">
        <div class="son">垂直居中</div>
    </div>

通过以下CSS代码实现居中布局

    .parent{
        display:table-cell;
        vertical-align:middle
    }
    .son{
        display:block;
        margin:0 auto;
    }

实现两列布局(定宽+自适应)的几种方式

方法一:

    <div class="parent">
        <div class="left">left</div>
        <div class="right">right</div>
    </div>

通过以下CSS代码实现居中布局

    .left{
        height:500px
        width:300px;
        float:left;
    }
    .right{
        height:500px;
        margin-left:300px;
    }

方法二:

    <div class="parent">
        <div class="left">left</div>
        <div class="right">right</div>
    </div>

通过以下CSS代码实现居中布局

    .left{
        height:500px
        width:300px;
        float:left;
    }
    .right{
        height:500px;
        overflow:hidden;
    }

方法三:

    <div class="parent">
        <div class="left">left</div>
        <div class="right">right</div>
    </div>

通过以下CSS代码实现居中布局

    .parent{
        display:table;
        table-layout:fixed;
        width:100%;
    }
    .left,.right{
        display:table-cell;
        height:500px;
    }
    .left{
        width:300px;
    }

实现三列布局的几种方式

圣杯布局:

    <div class="parent">
        <div class="center">center</div>
        <div class="left">left</div>
        <div class="right">right</div>
        <div class="clear"></div>
    </div>

通过以下CSS代码实现圣杯布局

    *{
      margin: 0;
    }
    .center,.left,.right{
      float: left;
      height: 500px;
      position: relative;
    }
    .clear{
      clear: both;
    }
    .parent{
      margin:0 250px;
    }
    .center{
      width: 100%;
      background-color: silver;
    }
    .left,.right{
      width: 250px;
      background-color: slategrey;
    }
    .left{
      margin-left: -100%;
      left: -250px;
    }
    .right{
      margin-left: -250px;
      left:250px
    }

双飞翼布局:

    <div class="parent">
        <div class="center">
            <div class="center-inner">center</div>
        </div>
        <div class="left">left</div>
        <div class="right">right</div>
        <div class="clear"></div>
    </div>

通过以下CSS代码实现双飞翼布局

    *{
      margin: 0;
    }
    .center,.left,.right{
      float: left;
      height: 500px;
    }
    .clear{
      clear: both;
    }
    .center{
      width: 100%;
      background-color: silver;
    }
    .center-inner{
      margin: 0 250px;
    }
    .left,.right{
      width: 250px;
      background-color: slategrey;
    }
    .left{
      margin-left: -100%;
    }
    .right{
      margin-left: -250px;
    }

实现等分布局的几种方式

方法一:

    <div class="parent">
        <div class="column">1</div>
        <div class="column">2</div>
        <div class="column">3</div>
        <div class="column">4</div>
    </div>
    .parent{
        width: 100%;
    }
    .column{
        width: 25%;
        float: left;
        height:300px;
    }

方法二:

    <div class="parent">
        <div class="column">1</div>
        <div class="column">2</div>
        <div class="column">3</div>
        <div class="column">4</div>
    </div>
    .parent{
        width: 100%;
        display:table;
    }
    .column{
        height:300px;
        display:table-cell;
    }

实现等高布局的几种方式

方法一:

    <div class="parent">
        <div class="left">
            Lorem ipsum dolor sit amet consectetur adipisicing elit. 
            Quibusdam dolores dicta placeat porro, earum ea numquam, 
            odio cupiditate ipsam repudiandae ut consequatur enim
            delectus expedita ratione temporibus sequi! 
            Impedit, veritatis.
        </div>
        <div class="right">
            Lorem ipsum dolor sit amet consectetur adipisicing elit. 
        </div>
    </div>
    *{
        margin: 0;
        padding: 0;
    }
    .parent{
        width: 100%;
        display: table;
        table-layout: fixed;
    }
    .left,.right{
        display: table-cell;
    }
    .left{
        width: 50%;
        background-color: turquoise;
    }
    .right{
        ackground-color: violet;
    }

方法二:

    <div class="parent">
        <div class="left">
            Lorem ipsum dolor sit amet consectetur adipisicing elit. 
            Quibusdam dolores dicta placeat porro, earum ea numquam, 
            odio cupiditate ipsam repudiandae ut consequatur enim
            delectus expedita ratione temporibus sequi! 
            Impedit, veritatis.
        </div>
        <div class="right">
            Lorem ipsum dolor sit amet consectetur adipisicing elit. 
        </div>
    </div>
    *{
        margin: 0;
        padding: 0;
    }
    .parent{
        overflow:hidden;
    }
    .left,.right{
        margin-bottom:-9999px;
        padding-bottom:9999px;
    }
    .left{
        width: 300px;
        float:left;
        background-color: turquoise;;
    }
    .right{
        width:500px;
        background-color: violet;
    }

CSS3实现多列布局

利用columns属性

    <div class="parent">
        <div class="col1">
        </div>
        <div class="col2">
        </div>
        <div class="col3">
        </div>
        <div class="col4">
        </div>
    </div>
    *{
      margin: 0;
      padding: 0;
    }
    .parent{
      columns: 4 300px;
    }
    .col1,.col2,.col3,.col4{
      height: 300px;
    }
    .col1{
      background-color: violet;
    }
    .col2{
      background-color: yellow;
    }
    .col3{
      background-color: yellowgreen;
    }
    .col4{
      background-color: teal;
    }

总结

这里总结的布局并不是很完全,只是总结了一些基础或者比较经典的布局,实际应用中还会遇到很多布局,布局应灵活运用,没有哪种布局是最好的,只有最合适的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。