当前位置: 首页 > 网络学院 > 网页制作基础教程 > WEB设计综合 > CSS floats创建三列式网页布局

WEB设计综合
如何设置滚动条的样式?
鼠标经过改变表格背景属性
关闭IE中探出的图形工具栏
去掉链接中的下划线
CSS 常用布局
Meta 标签
自动刷新、转向
除去打印脚本
IP阻止
指针样式
定义滚动条样式
链接效果
框架中的“target”
开启DW中的无效行为
IFrames 简介
透明 IFrames
超链接效果
基于浏览器类型实现页面的重定向
HTML基本原则
图像边框

WEB设计综合 中的 CSS floats创建三列式网页布局


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-03-01   浏览: 1308 ::
收藏到网摘: n/a

三栏布局是目前最常见的网页布局,主要页内容放在中间一栏,边上的两栏放置导航链接之类的内容。基本布局一般是标题之下放置三栏,三栏占据整个页面的宽度,最后在页的底端放置页脚,页脚也占据整个页面宽度。

绝大多数网页设计者都熟悉传统的网页设计技术,用这些技术可以生成带有表格、创建固定宽度布局或者“液态”(它可以根据用户浏览器窗口宽度自动伸缩)布局的网页。

现 在,我们都开始抛弃基于表格的布局技术,许多网络设计者正在从XHTML标记和CSS格式这一新范例中寻找创建三栏布局的方法。用绝对定位的方法从CSS 中得到固定宽度的布局并不困难;但是得到液态布局就有点困难了。因此,本文介绍一种用CSS的float和clear属性来获得三栏液态布局的方法。

基本方法

基 本的布局包含五个div,即标题、页脚和三栏。标题和页脚占据整个页宽。左栏div和右栏div都是固定宽度的,并且用float属性来把它们挤压到浏览 器窗口的左侧和右侧。中栏实际上占据了整个页宽,中栏的内容在左、右两栏之间“流淌”。由于中栏div的宽度并不固定,因此它可以根据浏览器窗口的改变进 行必要的伸缩。中栏div的左侧和右侧的填充(padding)属性保证内容安排在一个整齐的栏中,甚至当它伸展到边栏(左栏或者右栏)的底端也是这样。

三列式网页布局的一个例子

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>52css.com</title>
<style type="text/css">
body {
margin: 0px;
padding: 0px;
}
div#header {
clear: both;
height: 50px;
background-color: aqua;
padding: 1px;
}
div#left {
float: left;
width: 150px;
background-color: red;
}
div#right {
float: right;
width: 150px;
background-color: green;
}
div#middle {
padding: 0px 160px 5px 160px;
margin: 0px;
background-color: silver;
height:300px;
}
div#footer {
clear: both;
background-color: yellow;
}
</style>
</head>

<body>
<div id="header">
<h1>52css.com</h1>
</div>
<div id="left">
Port side text...
</div>
<div id="right">
Starboard side text...
</div>
<div id="middle">
Middle column text...
</div>
<div id="footer">
Footer text...52css.com
</div>
</body>
</html>

请看看用本文所介绍的技术进行三栏布局的例子。这个例子用鲜艳的颜色来区分布局的各个div。

下面是XHTML代码:

<body>
<div id="header">
<h1>52css.com</h1>
</div>
<div id="left">
Port side text...
</div>
<div id="right">
Starboard side text...
</div>
<div id="middle">
Middle column text...
</div>
<div id="footer">
Footer text...52css.com
</div>
</body>

下面是CSS代码:

body {
margin: 0px;
padding: 0px;
}
div#header {
clear: both;
height: 50px;
background-color: aqua;
padding: 1px;
}
div#left {
float: left;
width: 150px;
background-color: red;
}
div#right {
float: right;
width: 150px;
background-color: green;
}
div#middle {
padding: 0px 160px 5px 160px;
margin: 0px;
background-color: silver;
height:300px;
}
div#footer {
clear: both;
background-color: yellow;
}

代码说明

HTML 代码中各部分出现的顺序是非常重要的。左栏和右栏div必须在中栏之前出现。这样才可以让这两个边栏浮动到它们的位置上(屏幕两侧),并让中栏的内容将 “流”入它们之间的空间。如果浏览器在一个或者两个边栏div之前先发现中栏,那么中栏将占据屏幕的一侧或者两侧,这样浮动的部分就会跑到中栏的下面而不 是中栏的旁边了。

div#header和div#footer样式(style)中的clear:both申明用来确保这浮动部分不会占据 标题和页脚的空间。div#header样式中的padding:1px申明用来消除页头背景色中的异常边,如果padding设置为零,那么在 Netscape浏览器中就会看到这个异常。

div#left样式中的float:left申明是用来把左栏挤压到左侧。width: 150px申明用来设置栏的固定宽度,不过你也可以把它的宽度设置为其它具体值。类似的,div#right样式中的float:right申明用来把右 栏div挤压到右侧。在本例中,float把左栏和右栏完全挤压到浏览器窗口的左边缘和右边缘。然而,如果这些div被其它div包含,那么float将 会把它们挤压到包含它们的div的边缘。

在div#middle样式中,clear申明允许中栏的内容“流淌”在两个边栏之间。padding:0px 160px 5px 160px申明设置了到左栏和右栏的填充,这样允许150象素宽度的栏div,在加上10象素的间距。

这个例子比较粗糙、简单,但很好的演示了用浮动div来创建三栏液态布局的边栏这一基本技术。

评论 (0) All

登陆 | 还没注册?