• CSS两列布局——左侧宽度固定,右侧宽度自适应的3种方法


     

    1.左侧绝对定位法

    直接看代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>CSS两列布局——第一种方法</title>
      <style>
        .left {
          position: absolute;
          height: 500px;
          width: 300px;
          background: #333;
          color: #ccc;
        }
        .right {
          height: 500px;
          background: #ddd;
          margin-left: 300px;
        }
      </style>
    </head>
    <body>
      <div class="left">
        左侧设置绝对定位
      </div>
      <div class="right">
        右侧左边距margin-left设为左侧的宽度,这是关键
      </div>
    </body>
    </html>

    效果如下:

    关键点在于.left的position:absolute和.right的margin-left:300px;

    2.左侧浮动法(右侧不浮动)

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>CSS两列布局——第二种方法</title>
      <style>
        .left {
          float: left;
          height: 500px;
          width: 300px;
          background: #333;
          color: #ccc;
        }
        .right {
          overflow: auto;
          height: 500px;
          background: #ddd;
        }
      </style>
    </head>
    <body>
      <div class="left">
        左侧设置左浮动
      </div>
      <div class="right">
        右侧设置overflow:auto
      </div>
    </body>
    </html>

    效果如下:

    关键点:左侧设置左浮动,右侧设置overflow:auto,我也不知道为什么这样就有效,以后知道了来补充。

    3.Flex布局法(建议移动端页面使用)

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>CSS两列布局——第三种方法,flex布局</title>
      <style>
        .wrapper {
          display: flex;
        }
        .left {
          flex: 0 0 25%;
          width: 25%;
          height: 500px;
          background: #333;
          color: #ccc;
        }
        .right {
          flex: 1;
          height: 500px;
          background: #ddd;
        }
      </style>
    </head>
    <body class="wrapper">
      <div class="left">
        flex子元素:固定宽度,可用百分比
      </div>
      <div class="right">
        flex子元素:宽度不定,但是flex:1,否则它是随内容而撑开。
      </div>
    </body>
    </html>

    效果如下:

    参考文章:两列布局——左侧宽度固定,右侧宽度自适应的两种方法

  • 相关阅读:
    P3899 [湖南集训]谈笑风生
    bzoj3252: 攻略
    批量创建用户20个和密码
    创建100个目录dir1-dir100一键完成
    SVM的优缺点
    Python zip() 函数
    经典博客4
    python的空格和tab混用报错问题
    Python的functools.reduce用法
    matplotlib显示AttributeError: 'module' object has no attribute 'verbose'
  • 原文地址:https://www.cnblogs.com/cathy1024/p/10375359.html
Copyright © 2020-2023  润新知