三列自适应布局的实现方式(兼容IE6+)

1.绝对定位方式

 1 <div class="nm-3-lr">
 2     <div class="aside-f">
 3         <p>侧边栏1固定宽度</p>
 4     </div>
 5     <div class="main">
 6         <p>绝对定位-主内容栏自适应宽度</p>
 7     </div>
 8     <div class="aside-s">
 9         <p>侧边栏2固定宽度</p>
10     </div>
11 </div>
12 
13 <div class="nm-3-lc">
14     <div class="aside-f">
15         <p>侧边栏1固定宽度</p>
16     </div>
17     <div class="main">
18         <p>绝对定位-主内容栏自适应宽度</p>
19     </div>
20     <div class="aside-s">
21         <p>侧边栏2固定宽度</p>
22     </div>
23 </div>
24 
25 <div class="nm-3-cr">
26     <div class="aside-f">
27         <p>侧边栏1固定宽度</p>
28     </div>
29     <div class="main">
30         <p>绝对定位-主内容栏自适应宽度</p>
31     </div>
32     <div class="aside-s">
33         <p>侧边栏2固定宽度</p>
34     </div>
35 </div>
 1 /* 普通布局 */
 2 .nm-3-lr,
 3 .nm-3-lc,
 4 .nm-3-cr
 5 {
 6     min-width: 400px;
 7     margin: 10px 0;
 8     position: relative; 
 9     *zoom: 1;
10 }
11     /* 左中右 中间自适应 */
12         .nm-3-lr .aside-f{
13             position: absolute;
14             top: 0;
15             left: 0;
16             width: 200px;
17         }
18         .nm-3-lr .main{
19             margin: 0 210px;
20         }
21         .nm-3-lr .aside-s{
22             position: absolute;
23             top: 0;
24             right: 0;
25             width: 200px;   
26         }
27 
28     /* 左中右 右侧自适应 */
29         .nm-3-lc .aside-f{
30             position: absolute;
31             top: 0;
32             left: 0;
33             width: 200px;
34         }
35         .nm-3-lc .main{
36             margin-left: 420px;
37         }
38         .nm-3-lc .aside-s{
39             position: absolute;
40             top: 0;
41             left: 210px;
42             width: 200px;   
43         }
44 
45         /* 左中右 左侧自适应 */
46         .nm-3-cr .aside-f{
47             position: absolute;
48             top: 0;
49             right: 210px;
50             width: 200px;
51         }
52         .nm-3-cr .main{
53             margin-right: 420px;
54         }
55         .nm-3-cr .aside-s{
56             position: absolute;
57             top: 0;
58             right: 0;
59             width: 200px;   
60         }

2.采用圣杯布局

 1 <div class="bd-3-lr">
 2     <div class="main">
 3         <p>圣杯布局-主内容栏自适应宽度</p>
 4     </div>
 5     <div class="aside-f">
 6         <p>侧边栏1固定宽度</p>
 7     </div>
 8     <div class="aside-s">
 9         <p>侧边栏2固定宽度</p>
10     </div>
11 </div>
12 
13 <div class="bd-3-lc">
14     <div class="main">
15         <p>圣杯布局-主内容栏自适应宽度</p>
16     </div>
17     <div class="aside-f">
18         <p>侧边栏1固定宽度</p>
19     </div>
20     <div class="aside-s">
21         <p>侧边栏2固定宽度</p>
22     </div>
23 </div>
24 
25 <div class="bd-3-cr">
26     <div class="main">
27         <p>圣杯布局-主内容栏自适应宽度</p>
28     </div>
29     <div class="aside-f">
30         <p>侧边栏1固定宽度</p>
31     </div>
32     <div class="aside-s">
33         <p>侧边栏2固定宽度</p>
34     </div>
35 </div>
 1 /* 圣杯布局 */
 2 .bd-3-lr,
 3 .bd-3-lc,
 4 .bd-3-cr
 5 {
 6     min-width: 400px;
 7     margin: 10px 0;
 8 }
 9      /* 左中右 中间自适应 */
10         .bd-3-lr {
11             zoom:1;
12             overflow:hidden;
13             padding-left:210px;
14             padding-right:210px;
15         }
16         .bd-3-lr .main {
17             float:left;
18             width:100%;
19         }
20         .bd-3-lr .aside-f {
21             float: left;
22             width:200px;
23             margin-left: -100%;
24      
25             position:relative;
26             left: -210px;
27             _left: 210px; /*IE6 hack*/
28         }
29         .bd-3-lr .aside-s {
30             float: left;
31             width:200px;
32             margin-left: -200px;
33      
34             position:relative;
35             right: -210px;
36         }
37 
38     /* 左中右,右侧自适应 */
39         .bd-3-lc {
40             zoom:1;
41             overflow:hidden;
42             padding-left:420px;
43         }
44         .bd-3-lc .main {
45             float:left;
46             width:100%;
47         }
48         .bd-3-lc .aside-f {
49             float: left;
50             width:200px;
51             margin-left: -100%;
52             position:relative;
53             left: -420px;
54             _left: 0px; /*IE6 hack*/
55         }
56         .bd-3-lc .aside-s {
57             float: left;
58             width:200px;
59             margin-left: -100%;
60             position:relative;
61             left: -210px;
62             _left: 210px; /*IE6 hack*/
63         }
64 
65     /* 左中右,左侧自适应 */
66         .bd-3-cr{
67             overflow: hidden;
68             padding-right: 420px;
69         }
70         .bd-3-cr .main {
71             width: 100%;
72             float: left;
73         }
74         .bd-3-cr .aside-f {
75             width: 200px;
76             float: left;
77             margin-left: -200px;
78             position: relative;
79             left: 210px;
80         }
81         .bd-3-cr .aside-s {
82             width: 200px;
83             float: left;
84             margin-left: -200px;
85             position: relative;
86             left: 420px;
87         }

3.采用双飞翼布局

 1 <div class="df-3-lr">
 2     <div class="df-main">
 3         <div class="main-warp">
 4             <p>双飞翼布局-主内容栏自适应宽度</p>
 5         </div>
 6     </div>
 7     <div class="aside-f">
 8         <p>侧边栏1固定宽度</p>
 9     </div>
10     <div class="aside-s">
11         <p>侧边栏2固定宽度</p>
12     </div>
13 </div>
14 
15 <div class="df-3-lc">
16     <div class="df-main">
17         <div class="main-warp">
18             <p>双飞翼布局-主内容栏自适应宽度</p>
19         </div>
20     </div>
21     <div class="aside-f">
22         <p>侧边栏1固定宽度</p>
23     </div>
24     <div class="aside-s">
25         <p>侧边栏2固定宽度</p>
26     </div>
27 </div>
28 
29 <div class="df-3-cr">
30     <div class="df-main">
31         <div class="main-warp">
32             <p>双飞翼布局-主内容栏自适应宽度</p>
33         </div>
34     </div>
35     <div class="aside-f">
36         <p>侧边栏1固定宽度</p>
37     </div>
38     <div class="aside-s">
39         <p>侧边栏2固定宽度</p>
40     </div>
41 </div>
  1 /* 双飞翼布局 */
  2 .df-3-lr,
  3 .df-3-lc,
  4 .df-3-cr
  5 {
  6     margin: 10px 0;
  7 }
  8     /* 右侧栏固定宽度,左侧自适应 */
  9         .df-rgt{
 10             zoom: 1;
 11             overflow: hidden;
 12         }
 13         .df-rgt .df-main{
 14             float: left;
 15             width: 100%;
 16         }
 17         .df-rgt .df-main .main-warp{
 18             margin-right: 210px;
 19         }
 20         .df-rgt .aside{
 21             width: 200px;
 22             margin-left: -200px;
 23             float: left;
 24         }
 25 
 26     /* 左中右 中间自适应 */
 27         .df-3-lr{
 28             zoom: 1;
 29             overflow: hidden;
 30         }
 31         .df-3-lr .df-main{
 32             float: left;
 33             width: 100%;
 34         }
 35         .df-3-lr .df-main .main-warp{
 36 
 37             margin: 0 210px;
 38         }
 39         .df-3-lr .aside-f, .df-3-lr .aside-s{
 40             width: 200px;
 41             float: left;
 42         }
 43         .df-3-lr .aside-f{
 44 
 45             margin-left: -100%;
 46         }
 47         .df-3-lr .aside-s{
 48 
 49             margin-left: -200px;
 50         }
 51 
 52     /* 左中右 右侧自适应 */
 53         .df-3-lc{
 54             zoom: 1;
 55             overflow: hidden;
 56         }
 57         .df-3-lc .df-main{
 58             width: 100%;
 59             float: left;
 60         }
 61         .df-3-lc .df-main .main-warp{
 62             
 63             margin-left: 420px;
 64         }
 65         .df-3-lc .aside-f, .df-3-lc .aside-s{
 66             width: 200px;
 67             float: left;
 68         }
 69         .df-3-lc .aside-f{
 70             margin-left: -100%;
 71         }
 72         .df-3-lc .aside-s{
 73             margin-left: -100%;
 74             position: relative;
 75             left: 210px;
 76         }
 77 
 78     /* 左中右 左侧自适应 */
 79         .df-3-cr{
 80             zoom: 1;
 81             overflow: hidden;
 82         }
 83         .df-3-cr .df-main{
 84             width: 100%;
 85             float: left;
 86         }
 87         .df-3-cr .df-main .main-warp{
 88             margin-right: 420px;
 89         }
 90         .df-3-cr .aside-f, .df-3-cr .aside-s{
 91             width: 200px;
 92             float: left;
 93         }
 94         .df-3-cr .aside-f{
 95             margin-left: -200px;
 96             position: relative;
 97             right: 210px;
 98         }
 99         .df-3-cr .aside-s{
100             margin-left: -200px;
101         }

整体效果:http://runjs.cn/detail/lvf5bmzq

posted @ 2015-11-06 18:35  黎明就在眼前  阅读(1698)  评论(0编辑  收藏  举报