两列布局---左侧固定,右侧自适应

方法一,高度100%,左侧float,右侧自动宽度(会自动占满剩余宽度)。

CSS及相关的HTML如下:

   1: body {
   2:     margin: 0;
   3:     height: 100%
   4: }
   5: html {
   6:     /*兼容firefox的div高度100%*/
   7:     height: 100%
   8: }
   9: #left {
  10:     width: 150px;
  11:     height: 100%;
  12:     float: left;
  13:     /*解决IE6的3px-Bug*/
  14:     /*IE6下当浮动元素与非浮动元素相邻时,3px的Bug就会出现,它会偏移3像素。*/
  15:     _margin-right: -3px;
  16:     background-color: yellow
  17: }
  18: #main {
  19:     height: 100%;
  20:     background-color: green;
  21:     overflow: auto;
  22: }
   1: <div id="left">left</div>
   2: <div id="main">
   3:     main
   4:     <br/>
   5:     main
   6:     <br/>
   7:     main
   8:     <br/>
   9:     main
  10:     <br/>
  11:     main
  12:     <br/>
  13:     main
  14:     <br/>
  15:     main
  16:     <br/>
  17:     main
  18:     <br/>
  19:     main
  20:     <br/>
  21:     main
  22:     <br/>
  23:     main
  24:     <br/>
  25:     main
  26:     <br/>
  27:     main
  28:     <br/>
  29:     main
  30:     <br/>
  31:     main
  32:     <br/>
  33:     main
  34:     <br/>
  35:     main
  36:     <br/>
  37:     main
  38:     <br/>
  39:     main
  40:     <br/>
  41:     main
  42:     <br/>
  43:     main
  44:     <br/>
  45:     main
  46:     <br/>
  47:     main
  48:     <br/>
  49:     main
  50:     <br/>
  51:     main
  52:     <br/>
  53:     main
  54: </div>

 

 

 

 

 

方法二,绝对定位absolute,使用方法一的HTML结构,左侧绝对定位,拉出文档流,高度100%并设置一定宽度200px。右侧自动宽度(将占100%)并设置margin-left:200px。

   1: body {
   2:     margin: 0;
   3:     height: 100%
   4: }
   5: html {
   6:     height: 100%
   7: }
   8: #left {
   9:     position: absolute;
  10:     top: 0;
  11:     left: 0;
  12:     width: 200px;
  13:     height: 100%;
  14:     background-color: #CCCCCC
  15: }
  16: #main {
  17:     margin-left: 200px;
  18:     height: 100%;
  19:     background-color: #0099FF;
  20:     overflow:auto;
  21: }

 

 

 

 

 

方法三, 右侧宽度与高度均100%,左侧部分float,使左侧部分被包含到右侧部分,如下面的HTML结构。

若左侧部分设有高度,则若右侧部分内容超出此高度时,其内容将会出现到左侧部分下方,这种特性有某些情境是有用的。如下图所示:

 

CSS 两列布局---左侧固定,右侧自适应 - 石头 - 石头的足迹
   1: body {
   2:     margin: 0;
   3:     height: 100%
   4: }
   5: html {
   6:     height: 100%
   7: }
   8: #left {
   9:     width: 200px;
  10:     height: 100%;
  11:     background-color: #CCCCCC;
  12:     float: left
  13: }
  14: #main {
  15:     width: 100%;
  16:     height: 100%;
  17:     background-color: #0099FF;
  18:     overflow:auto;
  19: }
   1: <div id="main">
   2:     <div id="left">
   3:         left
posted @ 2014-11-10 15:25  x_window  阅读(105)  评论(0)    收藏  举报