css常见自适应布局

1. 两列布局,左侧宽度固定,右侧宽度自适应

 1.1. 左侧进行浮动,右侧设置 margin-left

/*    1. 利用浮动进行布局 */
    .left {
        float: left;
        width: 200px;
        height: 200px;
        background-color: cornflowerblue;
    }
    .right {
        margin-left: 200px;
        height: 200px;
        background-color: bisque;
    }
    <div class="left"></div>
    <div class="right"></div>

  

1.2. 利用绝对定位来代替浮动

/*    2. 利用绝对定位进行布局 */
    .wrap {position: relative;}
    .left {
        position: absolute;
        top: 0;
        left: 0;
        width: 200px;
        height: 200px;
        background-color: cornflowerblue;
    }
    .right {
        margin-left: 200px;
        height: 200px;
        background-color: bisque;
    }
    <div class="wrap">
        <div class="left"></div>
        <div class="right"></div>
    </div>

  

 

2. 两列布局,右侧宽度固定,左侧宽度自适应

2.1. 利用浮动进行布局

/*    1. 利用浮动进行布局 */
    .left {
        margin-right: 200px;
        height: 200px;
        background-color: cornflowerblue;
    }
    .right {
        float: right;
        width: 200px;
        height: 200px;
        background-color: bisque;
    }
    <div class="right"></div>
    <div class="left"></div>

注:right 要写在 left 的前面,否则会出现如下问题。然后百度了下,终于找到了如下一段话(首先要明白浮动元素只对后面元素有影响,浮动元素本身并不浮动,只是脱离文档流,后面的元素会上移而占据浮动元素的位置)

2.2. 利用绝对定位进行布局

/*    2. 利用绝对定位进行布局 */
    .wrap {position: relative;}
    .left {
        margin-right: 200px;
        height: 200px;
        background-color: cornflowerblue;
    }
    .right {
        position: absolute;
        top: 0;
        right: 0;
        width: 200px;
        height: 200px;
        background-color: bisque;
    }
    <div class="wrap">
        <div class="left"></div>
        <div class="right"></div>
    </div>

 

 

3. 三列布局,中间宽度固定,两侧宽度自适应

/*    1. 常规实现方式 */
   .wrap {
     overflow: hidden; 
   } .left, .right { width: 50%; height: 200px; background-color: cornflowerblue; } .left { margin-left: -300px; float: left; } .right { margin-right: -300px; float: right; } .center { margin: 0 auto; width: 600px; height: 200px; background-color: bisque; }

  <div class="wrap">
    <div class="right"></div>
    <div class="left"></div>
    <div class="center"></div>
  </div>


 

4. 三列布局,中间宽度自适应,两侧宽度固定

4.1. 利用浮动实现

/*    1. 浮动实现方式 */
        .left,
        .right {
            width: 300px;
            height: 200px;
            background-color: cornflowerblue;
        }
        .left {float: left;}
        .right {float: right;}
        .center {
            margin: 0 300px;
            height: 200px;
            background-color: bisque;
        }
        <div class="right"></div>
    <div class="left"></div>
    <div class="center"></div>

4.2. 利用绝对定位实现

/*    2. 绝对定位方式实现 */
        .left,
        .right {
            position: absolute;
            top: 0;
            width: 300px;
            height: 200px;
            background-color: cornflowerblue;
        }
        .left {left: 0;}
        .right {right: 0;}
        .center {
            margin: 0 300px;
            height: 200px;
            background-color: bisque;
        }
        <div class="right"></div>
        <div class="left"></div>
        <div class="center"></div>

5. 两列,左右等高显示
        .wrap {overflow: hidden;}
        .left,
        .right {
            margin-bottom: -10000px;
            padding-bottom: 10000px;
        }
        .left {background-color: cornflowerblue;}
        .right {
            float: right;
            width: 400px;
            background-color: bisque;
        }
        <div class="wrap">
        <div class="right">
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>定 width 属性。另外指定元素时尽量使用 em 而不是 px 做单位。</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>定 width 属性。另外指定元素时尽量使用 em 而不是 px 做单位。</p>
        </div>
        <div class="left">
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>定 width 属性。另外指定元素时尽量使用 em 而不是 px 做单位。</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>定 width 属性。另外指定元素时尽量使用 em 而不是 px 做单位。</p> <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>定 width 属性。另外指定元素时尽量使用 em 而不是 px 做单位。</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>定 width 属性。另外指定元素时尽量使用 em 而不是 px 做单位。</p> <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>定 width 属性。另外指定元素时尽量使用 em 而不是 px 做单位。</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>
            <p>10. 是否忘记了写 DTD?</p>定 width 属性。另外指定元素时尽量使用 em 而不是 px 做单位。</p>
        </div>
    </div>

注:以上例子均是在简单的清除了默认样式的情况下进行的
    * {
            margin: 0;
            padding: 0;
            color: #fff;
        } 

各位看官,有钱的捧个钱场,没钱的捧个人场,要是觉得好就打赏点吧,hey hey hey!!!