点击这里给我发消息 点击这里给我发消息

后端开发工程师的DIV+CSS两栏布局入门

添加时间:2011-9-20
    相关阅读: 开发 CSS

padding 导致 width 扩大
如果对一个元素同时指定了 width 和 padding, 那么它实际的宽度是 padding-left + padding-right + width, 所以, 设置了固定宽度的 div, padding 必须设置为 0, 否则, 宽度便不是所期望的.

div 如何居中?
设置比例宽度或者固定宽度, 然后 margin-left 和 margin-right 为 auto.

<div class="main">
</div>

.main{
 margin: 0 auto;
 width: 800px;
 border: 1px solid #666;
}

居中的 div 如何自适应高度?
当 div 内的元素 float 时, div 无法自适应高度. 给 div 增加一个 100% 宽度的子 div, 所有内容放到该子 div 里:

<div class="main">
 <div class="main_inner">
 </div>
</div>

.main{
 margin: 0 auto;
 width: 800px;
}

.main_inner{
 float: left;
 width: 100%;
 border: 1px solid #666;
}
这样, main 也没有自适应高度, 但新增加的 main 自适应高度了, 宽度也能固定, 也就是 main 的宽度. main 的作用只有居中和宽度的功能. 也就是说, 用两个 div 来配合, 一个实现高度, 一个实现宽度.

如何进行两栏布局?
正确设置宽度, 是进行两栏布局的关键. 把两栏放在上面提到的 main 里.

1. 两栏固定宽度或者比例宽度, 然后 float
<div class="main">
 <div class="col_1">
 </div>

 <div class="col_2">
 </div>
</div>

.col_1{
 float: left;
 width: 400px;
}

.col_2{
 float: right;
 width: 400px;
}
float左还右均可, 随你喜欢. 非常推荐这种布局方式, 因为只需要修改一两行CSS代码, 就能改变两栏的左右关系.

2. 一栏固定宽度 float, 另一栏 margin
<div class="main">
 <div class="col_1">
 </div>

 <div class="col_2">
 </div>
</div>

.col_1{
 float: left;
 width: 400px;
}

.col_2{
 margin-left: 400px;
}
当 main 不是固定宽度时, 使用此方法.

用比例宽度来设置两栏有什么不好?
当两栏所处的容器不是固定宽度时, 一般会用比例宽度来设置两栏, 但这种方式适应性非常差, 受 border, margin, padding 的影响, 所以两者的宽度和一般不是 100%. 当浏览器窗口小时, 两栏间距很紧, 当浏览器窗口放大时, 两栏又离得太远. 一旦不小心设置了 border, margin, padding, 其中一个便会溜到另一个的下方, 好像消失了一样.

如果确实需要两栏占满整个浏览器窗口, 最好使用前面提到的”一栏固定宽度 float, 另一栏 margin”方法

本文作者:未知
咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册