通过实例学习CSS布局网页
脚本之家
11.1.8 一些高级的div布局技巧
为了满足更多布局的要求,本节特别选择几个常用布局技巧。
(1)右边div元素宽度自适应。本例为并排2个div,其中左边的div为固定宽度,右边div为自适应宽度。常用于文章列表和文章内容的页面布局。在D:\web\目录下创建网页文件(XHTML1.0),命名为div_demo.htm,编写div_demo.htm文件代码如代码11.11所示。
代码11.11 右边div元素宽度自适应:div_demo.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>右边div元素宽度自适应</title>
<style type="text/css">
*{margin:0px;
padding:0px;
}
#one{width:70%;
height:200px;
background-color:#eee;
border:1px solid #000;
float:right;
}
#two{width:50px;
height:200px;
background-color:#eee;
border:1px solid #000;
float:right;
}
</style></head>
<body>
<div id="one">第1个div</div>
<div id="two">第2个div</div>
</body>
</html>
为了更方便看到div的表现,笔者给div设置了浅灰色背景色和黑色边框。在浏览器地址栏输入http://localhost/div_demo.htm,浏览效果如图11.11所示。
笔者特意把2个div设置为向右浮动,第1个div元素为自适应宽度,而第2个div元素为固定宽度。本例为了防止读者的一个错觉,即前面的div浮动后一定在左边,其实左右方向取决于div元素浮动属性的值。
(2)div内容居中。这是很多网站需要用到的居中示例,即保持div包含内容的水平和垂直居中。在D:\web\目录下创建img目录,放入一个jpg格式图片文件,并命名为cs.jpg,在D:\web\目录下创建网页文件(XHTML1.0),命名为div_demo2.htm,编写div_demo2.htm文件代码如代码11.12所示。

图11.11 右边div元素宽度自适应
代码11.12 div内容居中:div_demo2.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>div内容居中</title>
<style type="text/css">
*{margin:0px;
padding:0px;
}
body,html{height:100%;}
.center{width:300px;
height:250px;
text-align:center;
line-height:250px;
background-color:#eee;
border:1px solid #000;
float:left;
}
</style></head>
<body>
<div class="center">
我在中间
</div>
<div class="center">
<img src="img/cs.jpg" width="120" height="120" />
</div>
</body>
</html>
为了更方便看到div的表现,笔者给div设置了浅灰色背景色和黑色边框。在浏览器地址栏输入http://localhost/div_demo2.htm,浏览效果如图11.12所示。

图11.12 div内容居中
笔者在这里用了text-align属性,即内含内容水平居中,也用了line-height属性,这是行距属性,当设置为div的高度时,其所含内容就垂直居中了。
