介绍
这篇文章主要介绍CSS怎么实现三栏布的局,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
<强> 强>
其实不管是三栏布局还是两栏布局都是我们在平时项目里经常使用的,也许你不知道什么事三栏布局什么是两栏布局但实际已经在用,或许你知道三栏布局的一种或两种方法,但实际操作中也只会依赖那某一种方法,本文具体的介绍了三栏布局的四种方法,并介绍了它的使用场景。
所谓三栏布局就是指页面分为左中右三部分然后对中间一部分做自适应的一种布局方式。
<强> 强>
HTML代码如下:
& lt; div 类=發eft"祝辞Left
& lt; div 类=癿ain"祝辞Main
& lt; div 类=皉ight"祝辞Right CSS代码如下:
//简单的进行CSS 重置
身体,html {
,,,身高:100%;
,,,填充:,0 px;
,,,保证金:0 px;
}//左右绝对定位
.left铃声{
,,,位置:,绝对;
,,,:0 px;
,,,背景:,红色;
,,,身高:100%;
}
.left {
,,,左:0;
,,,宽度:100 px;
}
铃声{
,,,右:0 px;
,,,宽度:200 px;
}//中间使用保证金空出左右元素所占据的空间
.main {
,,,保证金:0 px 200 px 0 px 100 px;
,,,身高:100%;
,,,背景:,蓝色;
}
该方法有个明显的缺点,就是如果中间栏含有最小宽度限制,或是含有宽度的内部元素,当浏览器宽度小到一定程度,会发生层重叠的情况。
<强> 强>
HTML代码如下:
//注意元素次序
& lt; div 类=癿ain"祝辞Main
& lt; div 类=發eft"祝辞Left
& lt; div 类=皉ight"祝辞Right CSS代码如下:
//习惯性的CSS 重置
身体,html {
,,,身高:100%;
,,,填充:,0;
,,,保证金:0
}//父元素身体空出左右栏位
body {
,,,padding-left:, 100 px;
,,,padding-right:, 200 px;
}//左边元素更改
.left {
,,,背景:,红色;
,,,宽度:,100 px;
,,,:浮动,离开;
,,,margin-left:, -100%;
,,,位置:,相对;
,,,左:,-100 px;
,,,身高:,100%;
}//中间部分
.main {
,,,背景:,蓝色;
,,,宽度:,100%;
,,,身高:,100%;
,,,:浮动,离开;
}//右边元素定义
.right {
,,,背景:,红色;
,,,宽度:,200 px;
,,,身高:,100%;
,,,:浮动,离开;
,,,margin-left:, -200 px;
,,,位置:,相对;
,,,右:,-200 px;
}
<>强相关解释如下:强>
,,,,,(1)中间部分需要根据浏览器宽度的变化而变化,所以要用100%,这里设左中右向左浮动,因为中间100%,左层和右层根本没有位置上去
,,,,,(2)把左层边缘负100后,发现上留下去了,因为负到出窗口没位置了,只能往上挪
,,,,,(3)按第二步这个方法,可以得出它只要挪动窗口宽度那么宽就能到最左边了,利用负边距,把左右栏定位
,,,,,(4)但由于左右栏遮挡住了中间部分,于是采用相对定位方法,各自相对于自己把自己挪出去,得到最终结果
<强> 强>
HTML代码如下:
& lt; div 类=癿ain"比;
,,,& lt; div 类=癷nner"比;
,,,,,,主要
,,,& lt;/div>
& lt;/div>
& lt; div 类=發eft"祝辞Left
& lt; div 类=皉ight"祝辞Right
CSS代码如下:
//CSS 重置
身体,html {
,,,身高:100%;
,,,填充:,0;
,,,保证金:0
}
body {
,,,/* padding-left: 100 px; */,,,/* padding-right: 200 px; */}
.left {
,,,背景:,红色;
,,,宽度:,100 px;
,,,:浮动,离开;
,,,margin-left:, -100%;
,,,身高:,100%;
,,,/*位置:相对;*/,,,/*左:-100 px; */}
.main {
,,,背景:,蓝色;
,,,宽度:,100%;
,,,:浮动,离开;
,,,身高:,100%;
}
.right {
,,,背景:,红色;
,,,宽度:,200 px;
,,,:浮动,离开;
,,,margin-left:, -200 px;
,,,身高:,100%;
,,,/*位置:相对;*/,,,/*右:-200 px; */}//新增内部元素
.inner {
,,,margin-left:, 100 px;
,,,margin-right:, 200 px;
}
圣杯布局实际看起来是复杂的后期维护性也不是很高,在淘宝发行的探讨下,出来了一种新的布局方式就是双飞翼布的局,代码如上。增加多一个div就可以不用相对布局了,只用到了浮动和负边距。和圣杯布局差异的地方已经被注释。