单侧固定,其余自适应

  1. <div id="app">
  2. <div id="left"></div>
  3. <div id="right"></div>
  4. </div>

利用浮动

#app {
  height: 100vh;
}
#left {
  width: 100px;
  height: 100%;
  float: left;
  background-color: red;
}
#right {
  height: 100%;
  margin-left: 100px;
  background-color: yellow;
}
// 清除浮动
#app:after {
  content: '';
  display: block;
  clear: both;
}

flex布局

#app {
  height: 100vh;
  display: flex;
}
#left {
  /* 不放大 */
  flex-grow: 0;
  /* 不缩小 */
  flex-shrink: 0;
  flex-basis: 100px;
  background-color: red;
}
#right {
  width: 100%;
  background-color: yellow;
}

两侧固定,中间自适应

浮动

  <div id="app">
    <div id="left">left</div>
    <div id="right">right</div>
    <div id="main">main</div>
  </div>
  #left {
    float: left;
    background-color: red;
  }
  #right {
    float: right;
    background-color: red;
  }
  #main {
    background-color: yellow;
  }

flex布局

  <div id="app">
    // 主题内容先加载
    <div id="main">main</div>
    <div id="left">left</div>
    <div id="right">right</div>
  </div>
#app {
  display: flex;
}
#left {
  background-color: red;
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 100px;
}
#right {
  order: 1;
  background-color: red;
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 100px;
}
#main {
  width: 100%;
  background-color: yellow;
}

双飞翼布局

<div id="app">
  <div id="main">
    <div id="content">
      <h1>双飞翼布局</h1>
    </div>
  </div>
  <div id="left">left</div>
  <div id="right">right</div>
</div>
#main {
  float: left;
  width: 100%;
  background: yellow;
  height: 100px;
}
#left {
  background: red;
  float: left;
  width: 300px;
  margin-left: -100%;
  height: 100px;
}
#right {
  background: blue;
  float: left;
  width: 300px;
  margin-left: -300px;
  height: 100px;
}
#content {
  width: 100%;
  height: 100%;
  padding: 0 300px;
  box-sizing: border-box;
}