网页布局layout

网页常见的布局有一般一栏、两栏、三栏现在从一栏说起:

css:

<style type="text/css">

.container{background: #87cbe5;height: 700px;width:500px;/*margin:0px auto;*/margin-left: auto;margin-right: auto;}

</style>

大家都知道一框架居中margin:0px auto;和margin-left: auto;margin-right: auto;都是可以(大家可以看看bootstrap框架一般用的后免得方法)

html:

<div class="container"></div>

两栏:

css:

<style type="text/css">

*{margin:0;padding:0;}

html.body{margin:0;height:100%;}
.container{width: 100%;background: #87cbe5;height: 700px;/*margin:0px auto;*/margin-left: auto;margin-right: auto;}
.container-left{width: 20%;background: #b79be7;height: 600px;float: left;}
.container-right{width: 80%;background: #ff7d73;height: 600px;float: right;}

</style>

html:

<div class="container">
<div class="container-left"></div>
<div class="container-right"></div>
</div>

 

一般从学习的时候别人就跟我们说里面的框架container-left和container-right宽度和是不能大于外面container框架,的确是如此!然后我们每每都是小心翼翼的遵守,但是有没有想过大于它的话要怎么才能不会错位捏,这时候用到了margin-left属性可以设置为负值。.container-right改为下面

.container-right{width: 85%;background: #ff7d73;height: 600px;float: right;margin-left: -5%;}

那么我要做两栏右面不设置宽度呢:

<style type="text/css">

html,body{margin:0;height:100%;}
.con{height:100%;}
.left{position: absolute;top:0px;left:0px;width: 200px;height: 100%;background: #b79be7;}
.right{margin-left: 210px;background: #ff7d73;height: 100%;margin-right: 10px;}

</style>

html:
<div class="left"></div>
<div class="right"></div>

两栏第二种方法:

html,body{margin:0;height:100%;}
.con{height: 100%;margin-left: 200px;}
.left{float: left;width: 200px;height:100%;background: #b79be7;margin-left: -200px;}
.right{height:100%;background: #87cbe5;margin-left: 10px;}

 html:

<div class="con">
<div class="left"></div>
<div class="right"></div>
</div>

 

三栏布局:(margin负值法以及自身浮动法,绝对定位法三种方法)

 上面两栏引出此方法margin负值法

<style type="text/css">


html,body{margin:0;height:100%;}
.main{width: 100%;height: 100%;float: left;}
.main .center{margin:0 210px;background: #87cbe5;height:100%;}
.left,.right{width: 200px;height:100%;float: left;background: #b79be7;}
.left{margin-left: -100%;}
.right{margin-left: -200px;}

</style>


<div class="main">
<div class="center"></div>
</div>
<div class="left"></div>
<div class="right"></div>

第二种:

<style type="text/css">

html,body{margin:0;height:100%;}
.left,.right{position: absolute;top: 0px;width: 200px;height: 100%;}
.left{left:0;background: #b79be7;}
.right{right: 0;background: #ff7d73;}
.center{margin:0 210px;background: #87cbe5;height:100%;}

</style>


<div class="left"></div>
<div class="center"></div>
<div class="right"></div>

第三种:

 

<style type="text/css">

html,body{margin:0;height:100%;}
.center{height: 100%;margin:0 310px;background: #87cbe5;}
.left,.right{width: 300px;height:100%;background: #b79be7;}
.left{float: left;}
.right{float: right;}
</style>

 

<div class="left"></div>
<div class="right"></div>
<div class="center"></div>

关键的是把中间的放在最后

 

posted @ 2016-03-31 23:19  pikachuWorld  阅读(477)  评论(0编辑  收藏  举报