网页设计中使用CSS样式表,一般有三种方式:
1、直接使用:
在<head>与</head>之间,
<style>
<!--
* { margin: 0; padding: 0; }
-->
</style>
2、使用link引用样式表文件:
<link rel="stylesheet" rev="stylesheet" href="style.css" type="text/css">
3、用import引用样式表:
<style type="text/css">
@import url(style.css);
</style>
第一种是直接在html页面上进行css书写,而第二种和第三种是采用外部引用样式单独提取文件。这三种方式都可以达到相同的效果。
那么,到底link和@import有什么区别?
我们先来看看他们的定义和参数。
link元素
HTML和XHTML都有一个结构,它使网页作者可以增加于HTML文档相关的额外信息。这些额外资源可以是样式化信息(CSS)、导航助手、属于另 外形式的信息(RSS)、联系信息等等。
@import
指定导入的外部样式表及目标设备类型。
其实link和@import的最根本区别就是:link是一个html的一个标签,而@import是css的一个标签,
link除了调用css外还可以有其他作用譬如声明页面链接属性,声明目录,rss等等,而@import就只能调用css。如果单独从外部引用css来说,他们的作用是基本一样。
下面说说两个不同用法:
1、我需要用javascript进行样式选择。比如有的网页提供不同的配色方案,浏览者点个按钮就可以改变整个网页的配色;又例如本文右上角的字体大小选择。这个时候就要用link,因为link是html元素,可用javascript去控制dom元素最后达到改变样式的效果。
看下列代码:
<link rel="stylesheet" href="/css/styles.css" type="text/css" media="screen" />
<link rel="stylesheet" href="/css/orange.css" type="text/css" media="screen" title="orange" />
<link rel="alternate stylesheet" href="/css/blue.css" type="text/css" media="screen" title="blue" />
<link rel="alternate stylesheet" href="/css/pink.css" type="text/css" media="screen" title="pink" />
<link rel="alternate stylesheet" href="/css/slate.css" type="text/css" media="screen" title="slate" />
这是一段很经典的改变页面风格的代码,因为我们今天主要讲的是link和@import,所以我这里只列出了引用css部分。
我们先来了解下link的参数:
rel:声明Link对象的作用或者类型;
href:引用css的文件路径;
tyle:文件类型;
media:应用的设备;比如:"all";"screen",应用在屏幕上;"print",打印的时候应用(注1),等等。
title:是css的名称;
这段代码中一共有5个css,第一个是基本样式,而其他四个是风格样式,利用javascript去控制默认显示的样式title就ok了。
注1:我要在应用打印样式; 打印样式顾名思义就是打印页面时候的样式。 这个样式在普通浏览下是没有效果的,只有在打印的时候生效。 如果要为页面单独引用打印样式的话,link和@import都可以的。
link代码:
<link rel="stylesheet" href="/css/styles.css" type="text/css" media="print" />
@import代码:
<style type="text/css">
@import url(foo.css) print;
</style>
另外对于css来说还有一种方式@media:
@media print {
@import "print.css"
}
用@media先制定设备为 print,然后再用@impor链接
大型网站,为了以后改版方便,会制作多个样式表,一般使用@import引用。
比如,在web页面里使用
<link rel="stylesheet" rev="stylesheet" href="style-2008.css" type="text/css">
在style-2008.css里使用
@import url(main-2008.css);
@import url(foot-2008.css);
等等,这样,方便以后改版,整理。