使用xHTML+CSS布局页面,其中有个很重要的特点就是结构与表现相分离,结构指xHTML页面代码,表现就是CSS代码了,如果把一个网页看成穿着衣服的人的话,人就是xHTML,是结构,而衣服呢就是CSS,是表现,现在出现的问题是,如何让CSS去控制页面?或者说,如何让衣服穿在人身上;不同的CSS就可以使页面出现不同的风格适用不同的网站,而不同的衣服,人穿上后就会体现出不同的职业。
第一:如何让CSS去控制HTML页面?
有4种样式(方式),行内样式、内嵌样式、链接样式、导入样式
1)行内样式
行内样式是4种样式中最直接最简单的一种,直接对HTML标签使用style="",例如:
- <p style="color:#F00; background:#CCC; font-size:12px;"></p>
复制代码
虽然这种方法比较直接,在制作页面的时候需要为很多的标签设置style属性,所以会导致HTML页面不够纯净,文件体积过大,不利于搜索蜘蛛爬行,从而导致后期维护成本高。
2)内嵌样式
内嵌样式就是将CSS代码写在<head></head>之间,并且用<style></style>进行声明,例如:
- <!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>W3CFuns.com:打造中国Web前端开发人员最专业的贴心社区!</title>
- <style type="text/css">
- body,div,a,img,p{margin:0; padding:0;}
- a{color:#FFF;}
- img{float:left;}
- #container{width:500px; height:350px; background:url(http://www.w3cfuns.com/static/image/cm/demo/2d121/w3cBg.jpg) no-repeat; position:relative; margin:0 auto;}
- #container p{width:380px; height:40px; position:absolute; left:60px; bottom:60px; color:#fff; font-size:12px; line-height:18px; text-align:center; font-family:"微软雅黑", Verdana, Geneva, sans-serif;}
- #reg{display:block; width:114px; height:27px; position:absolute; left:191px; bottom:28px;}
- </style>
- </head>
- <body>
- <div id="container">
- <p>全国的Web前端开发工程师欢聚于<a href="http://www.w3cfuns.com/" target="_blank">W3CFuns.com</a><br />我们的口号是“打造中国Web前端开发人员最专业的贴心社区!”</p>
- <a href="http://www.w3cfuns.com/member.php?mod=register" target="_blank" id="reg"></a>
- </div>
- </body>
- </html>
复制代码
内嵌样式,大家也许已经意识到,即使有公共CSS代码,也是每个页面都要定义的,如果一个网站有很多页面,每个文件都会变大,后期维护难度也大,如果文件很少,CSS代码也不多,这种样式还是很不错的。
3)链接样式
链接样式是使用频率最高,最实用的样式,只需要在<head></head>之间加上<link…/>就可以了,如下:
<link type="text/css" rel="stylesheet" href="style.css" />
举个例子:
- <!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>W3CFuns.com:打造中国Web前端开发人员最专业的贴心社区!</title>
- <link rel="stylesheet" type="text/css" href="http://www.w3cfuns.com/static/image/cm/demo/2d121/style.css"/>
- </head>
- <body>
- <div id="container">
- <p>全国的Web前端开发工程师欢聚于<a href="http://www.w3cfuns.com/" target="_blank">W3CFuns.com</a><br />我们的口号是“打造中国Web前端开发人员最专业的贴心社区!”</p>
- <a href="member.php?mod=register" target="_blank" id="reg"></a>
- </div>
- </body>
- </html>
复制代码
这种样式将HTML文件和CSS文件彻底分成两个或者多个文件,实现了页面框架HTML代码与表现CSS代码的完全分离,使得前期制作和后期维护都十分方便,并且如果要保持页面风格统一,只需要把这些公共的CSS文件单独保存成一个文件,其他的页面就可以分别调用自身的CSS文件,如果需要改变网站风格,只需要修改公共CSS文件就OK了,相当的方便,这才是我们xHTML+CSS制作页面提倡的样式。
4)导入样式
导入样式和链接样式比较相似,采用import样式导入CSS样式表,在HTML初始化时,会被导入到HTML文件中,成为文件的一部分,类似第二种内嵌样式。 具体导入样式和链接样式有什么区别,可以参看这篇文章
《CSS:@import与link的具体区别》
,不过我还是建议大家用链接样式!
第二:四种样式的优先级
如果这上面的四种样式中的两种用于同一个页面后,就会出现优先级的问题,这里我就不再举例子来说明了,大家在下面自己证明一下下面的结论:
四种样式的优先级按照“就近原则”:
行内样式 > 内嵌样式 > 链接样式 > 导入样式
。