CSS样式表嵌入到网页中的几种方法

html-css029

CSS样式表嵌入到网页中的几种方法,第1张

当浏览器读取样式表时,要依照文本格式来读,这里介绍四种在页面中插入CSS样式表的方法:链入外部样式表、内部样式表、导入外表样式表和内嵌样式。并特别讲解多重样式表的叠加的运用以及如何在xml中插入CSS。 1. 链入外部样式表 链入外部样式表是把样式表保存为一个样式表文件,然后在页面中用标记链接到这个样式表文件,这个标记必须放到页面的区内,如下: …… …… 上面这个例子表示浏览器从mystyle.css文件中以文档格式读出定义的样式表。rel=”stylesheet”是指在页面中使用这个外部的样式表。type=”text/css”是指文件的类型是样式表文本。href=”mystyle.css”是文件所在的位置。media是选择媒体类型,这些媒体包括:屏幕,纸张,语音合成设备,盲文阅读设备等。 一个外部样式表文件可以应用于多个页面。当你改变这个样式表文件时,所有页面的样式都随之而改变。在制作大量相同样式页面的网站时,非常有用,不仅减少了重复的工作量,而且有利于以后的修改、编辑,浏览时也减少了重复下载代码。 样式表文件可以用任何文本编辑器(例如:记事本)打开并编辑,一般样式表文件扩展名为.css。内容是定义的样式表,不包含HTML标记,mystyle.css这个文件的内容如下: hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} /*定义水平线的颜色为土黄;段落左边的空白边距为20象素;页面的背景图片为images目录下的back40.gif文件*/ 2.内部样式表 内部样式表是把样式表放到页面的区里,这些定义的样式就应用到页面中了,样式表是用标记插入的,从下例中可以看出标记的用法: …… hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} …… 注意:有些低版本的浏览器不能识别style标记,这意味着低版本的浏览器会忽略style标记里的内容,并把style标记里的内容以文本直接显示到页面上。为了避免这样的情况发生,我们用加HTML注释的方式()隐藏内容而不让它显示: ………… 3. 导入外部样式表 导入外部样式表是指在内部样式表的里导入一个外部样式表,导入时用@import,看下面这个实例: ………… 例中@import “mystyle.css”表示导入mystyle.css样式表,注意使用时外部样式表的路径。方法和链入样式表的方法很相似,但导入外部样式表输入方式更有优势。实质上它相当于存在内部样式表中的。 注意:导入外部样式表必须在样式表的开始部分,在其他内部样式表上面。 4. 内嵌样式 内嵌样式是混合在HTML标记里使用的,用这种方法,可以很简单的对某个元素单独定义样式。内嵌样式的使用是直接将在HTML标记里加入style参数。而style参数的内容就是CSS的属性和值,如下例: 这是一个段落 在style参数后面的引号里的内容相当于在样式表大括号里的内容。 注意:style参数可以应用于任意BODY内的元素(包括BODY本身),除了BASEFONT、PARAM和SCRIPT。多重样式表的叠加 CSS样式表有层叠顺序,这里我们讨论插入样式表的这几种方法的叠加,如果在同一个选择器上使用几个不同的样式表时,这个属性值将会叠加几个样式表,遇到冲突的地方会以最后定义的为准。例如,我们首先链入一个外部样式表,其中定义了h3选择符的color 、text-alig和font-size属性: h3 { color: redtext-align: leftfont-size: 8pt} /*标题3的文字颜色为红色;向左对齐;文字尺寸为8号字*/ 然后在内部样式表里也定义了h3选择符的text-align和font-size属性: h3 { text-align: rightfont-size: 20pt} /*标题3文字向右对齐;尺寸为20号字*/ 那么这个页面叠加后的样式就是: color: redtext-align: rightfont-size: 20pt/*文字颜色为红色;向右对齐;尺寸为20号字*/ 字体颜色从外部样式表里保留下来,而对齐方式和字体尺寸都有定义时,按照后定义的优先而依照内部样式表。 注意:依照后定义的优先,所以优先级最高的是[s]内嵌样式[/s],[s]内部样式表[/s]高于[s]导入外部样式表[/s],[s]链入的外部样式表[/s]和[s]内部样式表[/s]之间是最后定义的优先级高。 如何在xml中插入CSS A brief CSS2 tutorial for XML——翻译自Cascading Style Sheets, level 2 CSS可以被应用于任何形式的结构化文档,比如可扩展性标记语言XML,因为制作者可以自定义没有任何表现的标记,比起HTML,XML的表现依赖于更多的样式。 下面是一个XML的片段。 Fredrick the Great meets Bach Johann Nikolaus Forkel One evening, just as he was getting his flute ready and his musicians were assembled, an officer brought him a list of the strangers who had arrived. 为了让XML文档拥有普通的视觉效果,我们首先必须定义标签元素的样式是内嵌(inline-level)的还是块级(block-level)的。 例子: INSTRUMENT { display: inline }/*定义标签样式为内嵌元素*/ ARTICLE, HEADLINE, AUTHOR, PARA { display: block }/*定义标签样式为块级元素*/ 如何将定义好的CSS应用到XML文档中呢?使用下面这段代码。

一网站调用CSS代码的方法:方法一:XML/HTML代码<style type="text/css"> <!--@import url("css/main.css") @import url("css/font.css") @import url("css/layout.css") --> </style> 方法二:XML/HTML代码<link href="css/tianyi.css" rel="stylesheet" type="text/css" /> 那么这两各方法有什么区别和优缺点呢?本质上,这两种方式都是为了加载CSS文件,但还是存在着细微的差别。差别1:link属于XHTML标签,而@import完全是CSS提供的一种方式。link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性等,@import就只能加载CSS了。差别2:加载顺序的差别。当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显(梦之都加载CSS的方式就是使用@import,我一边下载一边浏览梦之都网页时,就会出现上述问题)。差别3:兼容性的差别。由于@import是CSS2.1提出的所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题。差别4:使用dom控制样式时的差别。当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的。/*大致就这几种差别了,其它的都一样,从上面的分析来看,还是使用link标签比较好。标准网页制作加载CSS文件时,还应该选定要加载的媒体(media),比如screen,print,或者全部all等。 */差别5:@import可以在css中再次引入其他样式表,比如可以创建一个主样式表,在主样式表中再引入其他的样式表,如:CSS代码main.css———————-@import “sub1.css” @import “sub2.css” sub1.css———————-p {color:red} sub2.css———————-.myclass {color:blue}这样更利于修改和扩展. 注:这样做有一个缺点,会对网站服务器产生过多的HTTP请求,以前是一个文件,而现在却是两个或更多文件了,服务器的压力增大,浏览量大的网站还是谨慎使用。有兴趣的可以观察一下像新浪等网站的首页或栏目首页代码,他们总会把css或js直接写在html里,而不用外部文件。