css实现左边定宽,右边自适应布局

2017-06-11  本文已影响869人  落花的季节

在布局中,常常出现左边定宽,右边自适应布局的情况,抽象出来的代码是:

//css代码
* {
            padding: 0;
            margin: 0;
            color: #fff;
            font-size: 30px;
            font-weight: bold;
            text-align: center;
            box-sizing: border-box;
        }
        aside {
            width: 200px;
            height: 200px;
            padding-top: 75px;
            background: #5A6A94;
        }
        section {
            height: 200px;
            padding-top: 75px;
            background: #BE4F4F;
        }
 
//html代码
<!-- 左边定宽 -->
    <aside class="left">Left</aside>
    <!-- 右边自适应 -->
    <section class="right">Right</section>

效果图:

那么,要实现如下图的效果,应该怎么做那:

1.浮动布局

.left{
    float:left;
}
.right{
     width:100%;
}
        .left{
            float:left;
        }
        .right{
            margin-left: 200px; /*等于左边栏宽度*/
        }

2.flex布局

父容器设置 display:flex;Right部分设置 flex:1

        body{
            display: flex;
        }
        .right{
            flex:1
        }

3.使用负margin

首先修改页面结构,为自适应部分添加容器 .container, 同时改变左右部分的位置,如下:

<div class="container">
    <section class="right">Right</section>
</div>
<aside class="left">Left</aside>

设置样式:

        .left{
            float:left;
            margin-left: -100%;
        }
        .right{
            margin-left: 200px;
        }
        .container{
            float:left;
            width:100%
        }

4.绝对定位

左右两边都绝对定位

        .left{
            position: absolute;
            left:0;
        }
        .right{
            position: absolute;
            left:200px;
            width:100%
        }

5.table布局

        body{
            display: table;
            width:100%;
        }
        .left{
            display: table-cell;
        }
        .right{
            display: table-cell;
        }

使用table-cell还可以实现很多的布局,需要自己去发挥想象。总结下来也就需要记住几点,设置了display:table-cell的元素具有以下特性。

上一篇下一篇

猜你喜欢

热点阅读