2. float + margin 方式
然后想到的就是 float + margin 来实现两列布局,首先实现左栏定宽,主内容自适应的两栏布局。代码如下:
XML/HTML Code复制内容到剪贴板
<div class="sidebar">子列</div>
<div class="main">主列</div>
CSS Code复制内容到剪贴板
.sidebar {
float: left;
width: 200px;
height: 300px;
background-color: rgba(255, 0, 0, .5);
}
.main {
height: 300px;
margin-left: 210px;
background-color: rgba(0, 255, 0, .5);
}
这种实现方式比较简单,首先把子列浮动到左边,然后在主列上设置 margin-left 为子列留出显示空间即可。
那么,这种方式支不支持调换列的位置呢?当然可以。CSS代码如下:
CSS Code复制内容到剪贴板
.sidebar {
float: rightright;
width: 200px;
height: 300px;
background-color: rgba(255, 0, 0, .5);
}
.main {
height: 300px;
margin-right: 210px;
background-color: rgba(0, 255, 0, .5);
}
问题所在:
看起来 float + margin 方式是个好办法,然而我们前面提到过的主列在前优先显示的优化却不能实现。
3. float + 负margin 方式
废话不多说,直接上代码:
XML/HTML Code复制内容到剪贴板
<div class="main-wrapper">
<div class="main">主列</div>
</div>
<div class="sidebar">子列</div>
CSS Code复制内容到剪贴板
.main-wrapper {
float: left;
width: 100%;
}
.main {
height: 100px;
margin-left: 210px;
background-color: rgba(255, 0, 0, .5);
}
.sidebar {
float: left;
width: 200px;
height: 100px;
margin-left: -100%;
background-color: rgba(0, 255, 0, .5);
}
大家应该都看出来了,这就是双飞翼布局,主列优先显示。实现的过程如下:










