美文网首页
css实现左边定宽,右边自适应布局

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

作者: 落花的季节 | 来源:发表于2017-06-11 17:13 被阅读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.浮动布局

  • 左边设置左浮动,右边宽度设置100%
.left{
    float:left;
}
.right{
     width:100%;
}
  • 左边浮动,右边加上一个margin-left值
        .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的元素具有以下特性。

  • text-align、vertical-align等对齐属性起作用,margin不起作用。宽高百分比值不起作用。
  • 会生成虚拟的table、tr把自己包裹住,如果有相邻的兄弟元素也被设置了table-cell,则会跟兄弟元素一起生成虚拟的table、tr把自己包裹住,并一行等高显示
  • 多个table-cell元素会占满被设置了display: table的元素的宽度,如果一个元素被设置了宽度,那么其他剩余的table-cell元素会占满剩下的宽度。当然,如果只有一个table-cell元素,就算设置了宽度也会占满table元素的宽度。
  • 对设置了float、absolute的元素不起作用。且IE6、7不支持

相关文章

  • CSS基础布局

    左右布局(高度自适应) 1.左边定宽,右边自适应,或者右边定宽,左边自适应,(高度自适应) 使用 float 完成...

  • css布局

    左边定宽,右边宽度自适应 等高自适应,两列布局

  • 典型布局随记

    左边定宽,右边自适应 左边定宽,右边块状加margin-left:定宽。 三列均等布局 水平垂直居中 定位 tab...

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

    在布局中,常常出现左边定宽,右边自适应布局的情况,抽象出来的代码是: 效果图: 那么,要实现如下图的效果,应该怎么...

  • 面试题的代码实现

    1、两列布局,左边定宽,右边自适应的几种实现方式(5种):http://jsfiddle.net/shanshan...

  • CSS布局相关

    CSS相关 1.左边定宽,右边自适应方案: 2.左右两边定宽,中间自适应 3.CSS左右垂直居中 设置paddin...

  • jichu

    1.左右布局,左边定宽,右边自适应,不少于三种方式 2.左右定宽,中间自适应 3.页面进度条如何实现 页面进度条是...

  • 百度前端学院task3笔记

    实现三栏式布局(左右两栏定宽,中间宽度自适应)有多种方法最合适的是 将左边栏与右边栏的css的float属性分别设...

  • css实现左边自适应右边固定

    本文主要使用css实现左边自适应右边固定,右边固定左边自适应的问题。 左边自适应右边固定 1. 主要使用floa...

  • 2018-03-19 css 实现左列定宽,右列自适应宽度,等高

    上次面试提到了一个css布局:实现左列定宽,右列自适应宽度,等高布局上次没有答出来,只实现了左列定宽,右列自适应宽...

网友评论

      本文标题:css实现左边定宽,右边自适应布局

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