DIV CSS网页布局实例解析 (2008-05-28 09:40:29)
标签:互联网 cssdiv it 分类:网络动态
什么是CSS+DIV?
CSS+DIV是网站标准(或称“WEB标准”)中常用的术语之一,通常为了说明与HTML网页设计语言中的表格(table)定位方式的区别,因为XHTML网站设计标准中,不再使用表格定位技术,而是采用css+div的方式实现各种定位。
CSS是英语Cascading Style Sheets(层叠样式表单)的缩写,它是一种用来表现 HTML 或 XML 等文件式样的计算机语言。
DIV元素是用来为HTML文档内大块(block-level)的内容提供结构和背景的元素。DIV的起始标签和结束标签之间的所有内容都是用来构成这个块的,其中所包含元素的特性由DIV标签的属性来控制,或者是通过使用样式表格式化这个块来进行控制。
CSS+DIV网站设计的优势和问题
XHTM是目前国际上倡导的网站标准设计语言,因为XHTML网站设计语言具有的基本特点,这种CSS+DIV模式的网站设计具有一定的优势,不过目前在网站建设应用中CSS+DIV模式也存在一些问题。本文综合网站技术和设计人员的体会,并从网络营销应用的角度,将CSS+DIV网站设计的优势和问题归纳如下:
CSS+DIV网站设计的优势
首先,CSS的极大优势表现在简洁的代码,对于一个大型网站来说,可以节省大量带宽,而且众所周知,搜索引擎喜欢清洁的代码(其真正意义在于,增加了有效关键词占网页总代码的比重),因此使用CSS+DIV的web标准制作的网站具有搜索引擎友好的一定优势。
其次,CSS+DIV制作的网站使得网站改版相对简单,很多问题只需要改变CSS而不需要改动程序,从而降低了网站改版的成本。
CSS+DIV网站设计的问题
尽管CSS+DIV具有一定的优势,不过现阶段CSS+DIV网站建设存在的问题也比较明显,主要表现在:
第一,对于CSS的高度依赖使得网页设计变得比较复杂。相对于HTML4.0中的表格布局(table),CSS+DIV尽管不是高不可及,但至少要比表格定位复杂的多,即使对于网站设计高手也很容易出现问题,更不要说初学者了,这在一定程度上影响了XHTML网站设计语言的普及应用。
第二,CSS文件异常将影响整个网站的正常浏览。CSS网站制作的设计元素通常放在几个l外部文件中,这一个或几个文件有可能相当复杂,甚至比较庞大,如果CSS文件调用出现异常,那么整个网站将变得惨不忍睹。
第三,对于CSS网站设计的浏览器兼容性问题比较突出。基于HTML4.0的网页设计在IE4.0之后的版本中几乎不存在浏览器兼容性问题,但CSS+DIV设计的网站在IE浏览器里面正常显示的页面,到火狐浏览器(FireFox )中却可能面目全非(这也是为什么建议网络营销人员使用火狐浏览器的原因所在)。CSS+DIV还有待于各个浏览器厂商的进一步支持。
第四,CSS+DIV对搜索引擎优化与否取决于网页设计的专业水平而不是CSS+DIV本身。CSS+DIV网页设计并不能保证网页对搜索引擎的优化,甚至不能保证一定比HTML网站有更简洁的代码设计,何况搜索引擎对于网页的收录和排序显然不是以是否采用表格和CSS定位来衡量,这就是为什么很多传统表格布局制作的网站在搜索结果中的排序靠前,而很多使用CSS及web标准制作的网页排名依然靠后的原因。因为对于搜索引擎而言,网站结构、内容、相关网站链接等因素始终是网站优化最重要的指标。
本教程是利用DIV+CSS的UL LI实现表格的形式的一种方法,也就是说在标准前提下可以实现表格的形式的。
表格的数据,就应该使用表格来组织,不是说制作符合WEB标准的网站,表格就一无是处、彻底下岗了。表格类的数据,它有着得天独厚的条件,也非常方便组织。这类数据内容直接使用表格就可以了。
或许你认为你的数据并不是表格式的数据,还有着其它的用法或你自己的见解,我们也可以用ul、li来实现表格形式的布局。
我们首先分析一下如何制作:li是固定的宽度与高度(单元格),设置li在ul中浮动,当ul不够宽的时候,li就会自动另起一行排列(一行有多少列通过计算即可得到ul的宽度,如一行四列,一列宽100px,那ul宽就是400px加上一定的边距)。这样就实现了类似于表格的效果,或者说我们用UL+LI模拟了表格的效果。我们开始HTML代码的编写:
<ul id="biaoge">
<li class="biaotou">第一列</li>
<li class="biaotou">第二列</li>
<li class="biaotou">第三列</li>
<li class="biaotou">第四列</li>
<li>数据1-1</li>
<li>数据1-2</li>
<li>数据1-3</li>
<li>数据1-4</li>
<li>数据2-1</li>
<li>数据2-2</li>
<li>数据2-3</li>
<li>数据2-4</li>
<li>数据3-1</li>
<li>数据3-2</li>
<li>数据3-3</li>
<li>数据3-4</li>
<li>数据4-1</li>
<li>数据4-2</li>
<li>数据4-3</li>
<li>数据4-4</li>
</ul>
一个无序列表biaoge,前四个列表项我们赋予了类biaotou。因为这四个项是表格头部,应该与表格数据有所区别。所以单独赋予了类,可以方便控制。下面我们开始CSS代码的编写:
* {
margin:0;
padding:0;
font-size:12px;
color:#000;
}
CSS整体布局声明,边距为零,填充为零,文字大小为12px,文字颜色为黑色#000;
#biaoge {
width:405px;
margin:50px auto;
}
ID为biaoge的ul的CSS编码,宽度为405px(一列100px*4列+li的边距),上下边距为50px,左右为自动,实现水平居中对齐。
#biaoge li,#biaoge li.biaotou {
list-style-type:none;
width:100px;
height:30px;
line-height:30px;
text-align:center;
float:left;
margin-left:1px;
margin-bottom:1px;
background:#ccc;
}
对各个列表项li(即单元格)进行样式定义,设置列表项预设标记为无,宽度与高度分别是100px、30px,为了让文字垂直居中于li中,设置行高为30px,文字水平居中。设置为向左浮动,并且左边距与底边距均为1px,实现了简单的表格线的效果。(如果设计成border的表格线,很多CSS HACK很难控制与调整,特别是FF中极不正常,不建议使用border来实现这类ul+li实现表格线的定义!)设置背景色为浅灰色#ccc。
#biaoge li.biaotou {
background:#999;
}
我们设置四个“表头”li的背景色为深灰色#999,与其它的li区别开来。我们的样式定义基本就完成了。你可以在色彩上对它进行一些其它的美化。
最后我们再次声明,表格类的数据最好是用表格来实现,符合WEB标准不必拘泥于完全不用表格,只是在适当的情况下,可以使用此案例的方法来实现类似于表格的布局。
SPAN 和 DIV 的区别在于,DIV(division)是一个块级元素,可以包含段落、标题、表格,乃至诸如章节、摘要和备注等。而SPAN 是行内元素,SPAN 的前后是不会换行的,它没有结构的意义,纯粹是应用样式,当其他行内元素都不合适时,可以使用SPAN。
下面以一个实例来说明这两个属性的区别。
代码:
<span>SPAN标记有一个重要而实用的特性,即它什么事也不会做,它的唯一目的就是围绕你的HTML代码中的其它元素,这样你就可以为它们指定样式了。在此例中,<span>标识符允许你将一个段落分成不同的部分。
还有一个标识符具有类似的功能,<div>DIV也被用来在HTML文件中建立逻辑部分。但与<div>SPAN不同,<div>工作于文本块一级,它在它所包含的HTML元素的前面及后面都引入了行分隔。
效果:
SPAN标记有一个重要而实用的特性,即它什么事也不会做,它的唯一目的就是围绕你的HTML代码中的其它元素,这样你就可以为它们指定样式了。在此例中,标识符允许你将一个段落分成不同的部分。
还有一个标识符具有类似的功能,DIV也被用来在HTML文件中建立逻辑部分。但与SPAN不同,工作于文本块一级,它在它所包含的HTML元素的前面及后面都引入了行分隔。
网页制作技巧实例解决:用CSS控制图片自适应大小
图片自动适应大小是一个非常常用的功能,在进行制作的时候为了防止图片撑开容器而对图片的尺寸进行必要的控制,我们可不可以用CSS控制图片使它自适应大小呢?
我们想到了一个比较简单的解决方法,虽然不是非常的完美,如果您的要求不是非常高,已经可以满足你的需要了。我们看下面的代码:
div img {
max-width:600px;
width:600px;
width:expression(document.body.clientWidth>600?"600px":"auto");
overflow:hidden;
}
◎ max-width:600px; 在IE7、FF等其他非IE浏览器下最大宽度为600px。但在IE6中无效。
◎ width:600px; 在所有浏览器中图片的大小为600px;
◎ 当图片大小大于600px,自动缩小为600px。在IE6中有效。
◎ overflow:hidden; 超出的部分隐藏,避免控制图片大小失败而引起的撑开变形。