三种方法实现三栏式布局
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三种方法实现三栏式布局相关的知识,希望对你有一定的参考价值。
布局说明:
实现左右栏固定宽度,中间栏自适应的宽度。
如下图1所示:
方式一:圣杯布局
圣杯布局结构如下:
<div>
<article class="main"></article>
<aside class="left"></aside>
<aside class="right"></aside>
</div>
圣杯布局样式如下:
1、主体div和公共样式的设置
1 *{margin: 0;padding: 0;}
2
3 div{
4 background: #eee;
5 padding: 20px 160px 20px 240px;/*腾出左右的空间用于布局走右侧*/
6 margin: 20px;
7 border: 1px solid #999999;
8 box-sizing: border-box;
9 overflow: auto;/*清浮动*/
10 }
11
12 article,aside{
13 background: #FFF;
14 border:1px solid #999999;
15 }
2、中间栏的样式设置
1 .main{
2 width: 100%;/*撑满div的宽度*/
3 height: 300px;
4 float: left;
5 box-sizing: border-box;
6 padding: 20px;
7 }
3、左侧栏样式设置:
.left{
width: 200px;
height: 100px;
float: left;
position: relative;
margin-left: -100%;/*配合float使用,是元素移动到与main同行的位置*/
box-sizing: border-box;
left: -220px;/*调整位置*/
padding: 20px;
}
4、右侧栏样式设置:
.right{
width: 120px;
height: 200px;
float: left;
position: relative;
margin-left: -120px;
box-sizing: border-box;
right: -140px;
}
5、极端判断设置:
@media only screen and (max-width: 650px) {/*解决浏览器窗口极端现象*/ div{ width: 610px; } }
方法二:双飞翼布局:
1、主体结构:
<div id="container"> <div id="wrapper"> <div id="main">main</div> </div> <div id="left">left</div> <div id="right">right</div> </div>
2、公共样式与container样式设置:
body{ padding: 20px; font-size: 14px; font-family: sans-serif; } #container{ overflow: hidden;/*清浮动*/ /*width: 100%;*//*可加可不加*/ padding: 20px; background-color: #ccc; box-sizing: border-box;/*进入怪异盒模型*/ }
3、wrapper样式与main样式设置
#wrapper{ width: 100%; float: left;/*这是必须*/ } #main{ height: 300px; border: 1px solid #555; margin-left: 220px;/*空开左侧栏*/ margin-right: 140px;/*空开右侧栏*/ background: #eee; }
4、left样式设置:
#left{ width: 200px; height: 200px; border: 1px solid #555; background: #fff; float: left;/*这是必须*/ margin-left: -100%;/*将right移动到与#main同行*/ }
5、right样式设置:
#right{ width: 120px; height: 120px; border: 1px solid #555; background: #fff; float: left;/*这是必须*/ margin-left: -122px;/*将right移动到与#main同行*/ }
6、考虑极端,媒体查询:
@media only screen and (max-width: 600px) {/*解决浏览器窗口极端现象*/ #container{ width: 544px; } }
方法三:左右浮动
1、结构布局(左右中):
<div class="section"> <div id="left_div"></div> <div id="right_div"></div> <div id="container"></div> </div>
2、section样式设置:
.section{ border: 1px #999 solid; background-color: #eee; padding: 20px; margin: 20px; zoom: 1;/*IE请浮动*/ overflow: hidden;/*IE请浮动*/ } .section::after,section::before{ content: ‘‘; display: block; visibility: hidden; } .section::after{ clear: both; }
3、left_div样式设置:
#left_div{ width: 158px;
height:100px; padding: 20px; border: 1px #999 solid; background: #fff; float: left; }
4、right_div样式设置:
#right_div{ width: 80px;
height:100px; padding: 20px; border: 1px #999 solid; float: right; }
5、container样式设置:
#container{
height:200px; margin-left: 220px;/*左侧留白*/ margin-right: 140px;/*右侧留白*/ border: 1px #999 solid; }
以上是关于三种方法实现三栏式布局的主要内容,如果未能解决你的问题,请参考以下文章