接下来开始要真正设计布局了。和传统的方法一样,你首先要在脑海
里有大致的轮廓构想,然后用photoshop把它画出来。你可能看到有关web标准的站点大都很朴素,因为web标准更关注结构和内容,实际上它与网页
的美观没有根本冲突,你想怎么设计就怎么设计,用传统表格方法实现的布局,用DIV也可以实现。技术有一个成熟的过程,把DIV看成和TABLE一样的工
具,如何运用就看你的想象力了。
注:在实际应用过程中,DIV在有些地方的确不如表格方便,比如背景色的定义。但任何事情都有得有失,取舍在于你的价值判断。好,不罗嗦了,我们开始:
1.确定布局
w3cn的最初设计草图如下:
用表格的设计方法的话,一般都是上中下三行布局。
用DIV的话,我考虑使用三列来布局,成为这样
2.定义body样式
先定义整个页面的body的样式,代码如下:
Example Source Code [www.div-css.net]
body { MARGIN: 0px;
PADDING: 0px;
BACKGROUND: url(../images/bg_logo.gif) #FEFEFE no-repeat right bottom;
FONT-FAMILY: 'Lucida Grande','Lucida Sans Unicode','宋体','新宋体',arial,verdana,sans-serif;
COLOR: #666;
FONT-SIZE:12px;
LINE-HEIGHT:150%; }
以上代码的作用在上一天的教程有详细说明,大家应该一看就明白。定义了边框边距为0;背景颜色为#FEFEFE,背景图片为bg_logo.gif,图片位于页面右下角,不重复;定义了字体尺寸为12px;字体颜色为#666;行高150%。
3.定义主要的div
初次使用CSS布局,我决定采用固定宽度的三列布局(比自适应分辨率的设计简单,hoho,别说我偷懒,先实现简单的,增加点信心嘛!)。分别定义左中右的宽度为200:300:280,在CSS中如下定义:
/*定义页面左列样式*/
#left{ WIDTH:200px;
MARGIN: 0px;
PADDING: 0px;
BACKGROUND: #CDCDCD;
}
/*定义页面中列样式*/
#middle{ POSITION: absolute;
LEFT:200px;
TOP:0px;
WIDTH:300px;
MARGIN: 0px;
PADDING: 0px;
BACKGROUND: #DADADA;
}
/*定义页面右列样式*/
#right{ POSITION: absolute;
LEFT:500px;
TOP:0px;
WIDTH:280px;
MARGIN: 0px;
PADDING: 0px;
BACKGROUND: #FFF; }
注意:定义中列和右列div我都采用了POSITION:
absolute;,然后分别定义了LEFT:200px;TOP:0px;和LEFT:500px;TOP:0px;这是这个布局的关键,我采用了层的
绝对定位。定义中间列距离页面左边框200px,距离顶部0px;定义右列距离页面左边框500px,距离顶部0px;。
这时候整个页面的代码是:
<!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" lang="gb2312"> <head>
<title>欢迎进入新《网页设计师》:web标准教程及推广</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="gb2312" />
<meta content="all" name="robots" />
<meta name="author" content="ajie(at)netease.com,阿捷" />
<meta name="Copyright" content="www.yzci.com,自由版权,任意转载" />
<meta name="description" content="新网页设计师,web标准的教程站点,推动web标准在中国的应用." />
<meta content="web标准,教程,web, standards, xhtml, css, usability, accessibility" name="keywords" />
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="http://www.yzci.com/favicon.ico" type="image/x-icon" />
<style type="text/css">
body { MARGIN: 0px; PADDING: 0px;
BACKGROUND: url(../images/bg_logo.gif) #FEFEFE no-repeat right bottom; FONT-FAMILY: 'Lucida Grande','Lucida Sans Unicode','宋体','新宋体',arial,verdana,sans-serif;
COLOR: #666; FONT-SIZE:12px;
LINE-HEIGHT:150%; }
/*定义页面左列样式*/ #left{ WIDTH:200px; MARGIN: 0px; PADDING: 0px; BACKGROUND: #CDCDCD; } /*定义页面中列样式*/
#middle{
POSITION: absolute;
LEFT:200px;
TOP:0px;
WIDTH:300px;
MARGIN: 0px;
PADDING: 0px;
BACKGROUND: #DADADA;
}
/*定义页面右列样式*/
#right{
POSITION: absolute;
LEFT:500px;
TOP:0px;
WIDTH:280px;
MARGIN: 0px;
PADDING: 0px;
BACKGROUND: #FFF;
}
</style>
</head>
<body>
<div id="left">页面左列</div>
<div id="middle">页面中列</div>
<div id="right">页面右列</div>
</body>
</html>
这时候页面的效果仅仅可以看到三个并列的灰色矩形,和一个背景图。但是我希望高度是满屏的,怎么办呢?
4.100%自适应高度?
为了保持三列有同样的高度,我尝试在#left、#middle和#right中设置"height:100%;",但发现完全没有预想的自适应高度效
果。经过一番尝试后,我只好给每个div一个绝对高度:"height:1000px;",并且随着内容的增加,需要不断修正这个值。难道没有办法自适应
高度了吗?随着阿捷自己学习的深入,发现一个变通的解决办法,实际上根本不需要设置100%,
==========
如果我们想在3列布局的最后加一行页脚,放版权之类的信息。就遇
到必须对齐3列底部的问题。在table布局中,我们用大表格嵌套小表格的方法,可以很方便对齐三列;而用div布局,三列独立分散,内容高低不同,就很
难对齐。其实我们完全可以嵌套div,把三列放进一个DIV中,就做到了底部对齐。下面是实现例子(白色背景框模拟一个页面):
http://www.yzci.com/
<html>
<head>
<style type="text/css">
#body,div{FONT-SIZE:12px;}
#pagebox{
margin:0px;
PADDING:20px;
BACKGROUND: #FFF;
FONT-FAMILY: arial,'宋体','新宋体',verdana,sans-serif;
WIDTH:600px;
}
#header{
MARGIN: 0px;
BORDER: 0px;
BACKGROUND: #ccd2de;
WIDTH: 580px;
HEIGHT: 60px;}
#mainbox {
MARGIN: 0px;
WIDTH: 580px;
BACKGROUND: #FFF;
}
#menu{
FLOAT: right;
MARGIN: 2px 0px 2px 0px;
PADDING:0px 0px 0px 0px;
WIDTH: 400px;
BACKGROUND: #ccd2de;
}
#content{
FLOAT: right;
MARGIN: 1px 0px 2px 0px;
PADDING:0px;
WIDTH: 400px;
BACKGROUND: #E0EFDE;}
#sidebar{
FLOAT: left;
MARGIN: 2px 2px 0px 0px;
PADDING: 0px;
BACKGROUND: #F2F3F7;
WIDTH: 170px;
}
#footer{
CLEAR: both;
MARGIN: 0px 0px 0px 0px;
PADDING: 5px 0px 5px 0px;
BACKGROUND: #ccd2de;
HEIGHT: 40px;
WIDTH: 580px;
}
</style>
</head>
<body>
<div id="header">这里是#header{
MARGIN: 0px;
BORDER: 0px;
BACKGROUND: #ccd2de;
WIDTH: 580px;
HEIGHT: 60px;}</div>
<div id="mainbox">
这里是#mainbox {
MARGIN: 0px;
WIDTH: 580px;
BACKGROUND: #FFF;
}包含了#menu,#sidebar和#content
<div id="menu">这里是#menu{
FLOAT: right;
MARGIN: 2px 0px 2px 0px;
PADDING:0px 0px 0px 0px;
WIDTH: 400px;
BACKGROUND: #ccd2de;
}</div>
<div id="sidebar"><p>这里是#sidebar{
FLOAT: left;
MARGIN: 2px 2px 0px 0px;
PADDING: 0px;
BACKGROUND: #F2F3F7;
WIDTH: 170px;
},背景颜色用的是#main的背景色</p></div>
<div id="content"><p>这里是#content{
FLOAT: right;
MARGIN: 1px 0px 2px 0px;
PADDING:0px;
WIDTH: 400px;
BACKGROUND: #E0EFDE;}</p>
<p>这里是主要内容,根据内容自动适应高度</p><p>这里是主要内容,根据内容自动适应高度</p>
<p>这里是主要内容,根据内容自动适应高度</p>
</div>
</div>
<div id="footer">这里是#footer{
CLEAR: both;
MARGIN: 0px 0px 0px 0px;
PADDING: 5px 0px 5px 0px;
BACKGROUND: #ccd2de;
HEIGHT: 40px;
WIDTH: 580px;
}。</div>
</div>
</body>
</html>
具体样式表都写在相应版块里了。重点在于#mainbox层嵌套
了#menu,#sidebar和#content三个层。当#content的内容增加,#content的高度就会增高,同时#mainbox的高度
也会撑开,#footer层就自动下移。这样就实现了高度的自适应。
另外值得注意的是:#menu和#content都是浮动在页面右面"FLOAT: right;",#sidebar是浮动在#menu层的左面"FLOAT: left;",这是浮动法定位,还可以采用绝对定位来实现这样的效果。
这个方法存在另一个问题,就是侧列#sidebar的背景无法百分之百。一般的解决办法就是用body的背景色来填充满。(不能使用#mainbox的背景色,因为在Mozilla等浏览器中#mainbox的背景色失效。)
分享到:
相关推荐
手册中应包含丰富的实例,展示如何在实际项目中应用 CSS2,解决常见的布局和样式问题,提升网页设计的效率和质量。 通过深入学习这本 "css2使用手册--苏沈小雨",无论是初学者还是经验丰富的开发者,都能巩固 CSS2 ...
《CSS实战手册》是一本深受前端开发者欢迎的经典书籍,它为初学者提供了全面的CSS基础知识,同时也为有经验的开发者提供了深入理解CSS特性的实践案例。这个源代码压缩包包含了书中提到的各种示例,帮助读者更好地...
CSS2是CSS的第二个主要版本,发布于1998年,相较于CSS1增加了许多新的特性,如浮动、定位、多列布局、边框和背景等。中文手册使得国内开发者更容易理解和学习这些特性,避免了语言障碍。手册通常会包含详细的语法...
#### 第9天:第一个CSS布局实例 - **布局设计**:介绍一个简单的两栏布局实现过程。 - **body样式**:如何设置文档主体的背景色、文字颜色等。 - **主要的div定义**:包括定位、尺寸等属性设置。 #### 第10天:...
《div+css手册》是一本深入探讨网页布局技术的重要参考资料,尤其对于网页设计者和前端开发者来说,它具有极高的学习价值。这个手册的核心聚焦在HTML中的`div`元素和CSS(层叠样式表)的结合使用上,旨在帮助读者...
CSS2是CSS的第二个主要版本,它在CSS1的基础上增加了许多功能,进一步提升了网页设计的灵活性和控制力。这个“css2中文手册学习”资料包提供了深入学习CSS2的基础和高级概念,对于HTML设计者来说,是一份非常实用的...
CSS3参考手册v4.0中文版全面涵盖了以上这些内容,并且会随着CSS3新特性的不断发展进行更新,为开发者提供了详尽的参考和实例,是学习和掌握CSS3不可多得的资源。通过深入阅读和实践,开发者可以充分挖掘CSS3的潜力,...
压缩包中的"CSS3.0(飘零雾雨版).chm"很可能是针对CSS3的一个详细教程或参考文档,涵盖了CSS3的所有新特性、语法和实例。而"HTML5(W3CSchool版).chm"则可能包含W3School提供的HTML5学习资料,包括基本概念、元素...
**CSS2中文手册**是为Web开发者提供的一份详尽的CSS2(级联样式表第二版)属性和用法的指南。这份手册包含了各种CSS2属性的详细解释,以及相应的示例,帮助读者理解并掌握如何在网页设计中有效地应用这些属性。 ###...
《CSS实战手册 第二版 源代码》是针对网页设计者和开发者的一份宝贵资源,它涵盖了CSS(层叠样式表)的广泛知识。由于原网址无法访问,这个压缩包成为了获取书中示例和练习的重要途径。在这个压缩包中,你将找到名为...
最后,“css课件.chm”可能是一个综合性的教学材料,包括实例、练习和项目,旨在帮助学习者通过实践来深化理解。课件通常会逐步引导,从基础概念到实际应用,帮助学习者建立起从理论到实践的桥梁。 总结来说,这个...
《CSS完全自学手册》是一本全面且深入介绍CSS(Cascading Style Sheets)技术的教程,旨在帮助初学者和进阶者系统学习和掌握CSS,从而更好地实现网页样式设计和布局控制。光盘中包含的资源丰富多样,有助于读者通过...
2. **模块化**:CSS3被分解为多个模块,如颜色、字体、布局、过渡、动画等,使得开发者可以针对特定需求进行深入学习。 3. **多列布局**:column-count、column-gap和column-width等属性,使得创建报纸般的多列布局...
CSS2.0是CSS的第一个正式版本,它在CSS1.0的基础上进行了扩展和完善,引入了更多样式规则和定位方法,极大地增强了网页设计的灵活性和控制力。苏小雨的CSS2.0中文手册是一份详尽的参考资料,旨在帮助开发者快速查询...
例如,`:hover`用于鼠标悬停时的效果,`:first-child`用于选取父元素的第一个子元素,`[attribute=value]`则可以根据属性值来选择元素。 二、多列布局:CSS3.0中的`column-count`和`column-gap`属性允许开发者创建...
学习这个手册,你将能够了解到如何使用CSS来创建复杂的布局,包括流体布局、网格系统和弹性盒模型。同时,你还将掌握响应式设计的基本原理,了解如何根据设备特性调整页面的显示效果。此外,手册还会讲解CSS3的新...
CSS3则是层叠样式表的第三次重大更新,它带来了更多的样式选择器、布局模式以及动画和过渡效果,极大地提升了网页的视觉表现力。 HTML5的新特性包括: 1. **语义化元素**:如、、、、等,这些元素帮助开发者更好地...
CSS3.0(飘零雾雨版).chm和CSS3.0(腾讯ISD版).chm是两个不同的CSS3参考手册,它们可能包含了详细的CSS3语法、属性、选择器等信息,对于开发者来说是很好的学习和查阅资料。HTML5(W3CSchool版).chm则是针对HTML5...
在《CSS2中文手册》中,你可以找到关于这些特性的详细解释和实例,帮助你快速掌握CSS2的核心概念和用法。 1. **选择器**:CSS2扩展了选择器的范围,包括类选择器(.class)、ID选择器(#id)以及基于元素关系的选择...
W3School是一个知名的在线学习平台,提供了各种Web技术的教程,包括HTML、CSS、JavaScript、PHP、SQL等。其提供的CHM文件通常包含详细的概念解释、实例演示和代码参考,对于初学者来说是很好的自学资源。比如,你...