css布局--左固定右自适应两栏布局

默认结构:

<!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>左侧固定 右侧自适应--两栏布局</title>
  <style>
    .outer {
      height: 60px;
    }

    .sidebar,
    .content {
      height: 100%;
    }

    .sidebar {
      width: 200px;
      background: red;
    }

    .content {
      background: green;
    }
  </style>
</head>

<body>
  <div class="outer">
    <div class="sidebar">固定宽度区(sideBar)</div>
    <div class="content">自适应区(content)</div>
  </div>
</body>

</html>
默认布局

可以利用以下方法达到左侧固定右侧自适应的效果:


两栏布局
  1. 利用BFC与浮动元素不重叠
    .sidebar{
      float: left;
    }
    .content{
      overflow: hidden;//触发BFC
    }
  1. 利用浮动和margin-left
    .sidebar{
      float: left;
    }
    .content{
      margin-left: 200px;
    }
  1. 利用绝对定位和margin-left
    .outer{
      position: relative;
      top: 0;
      left: 0;
    }
    .sidebar{
      position: absolute;
      top: 0;
      left: 0;
    }
    .content{
      margin-left: 200px;
    }
  1. float和calc配合
    .sidebar{
      float: left;
    }
    .content{
      float: left;
      width: calc(100% - 200px);
    }
  1. inline-block和calc配合
    要记得父级font-size:0; 去除内联元素中间的空白。
    .outer{
      font-size: 0;
    }
    .sidebar{
      display: inline-block;
      font-size: 16px;
    }
    .content{
      display: inline-block;
      width: calc(100% - 200px);
      font-size: 16px;
    }
  1. flex
    .outer{
      display: flex;
    }
    .content{
      flex: 1; //自动填充剩余空间
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 左侧宽度固定,右侧宽度自适应的两栏布局与两侧宽度固定,中间宽度自适应的三栏布局一样,都是属于很基础很常见同时又十分...
    阿尔卑斯的隆冬阅读 1,376评论 0 2
  • 两栏布局 左边固定,右边自适应的两栏布局 首先创建基本的HTML布局和最基本的样式。 左边固定宽度,高度不固定 基...
    木子川页心阅读 243评论 0 0
  • CSS 是什么 css(Cascading Style Sheets),层叠样式表,选择器{属性:值;属性:值}h...
    崔敏嫣阅读 1,515评论 0 5
  • 许下一个愿望,希望2018能过PMO项目管理考试,拿到项目管理证书。 生活中任何事情都能看做一个项目,万事万物皆产...
    666frank666阅读 188评论 0 1