CSS学习之一:CSS样式的引入
HTML中,我们通常使用link元素引入外部样式表,link有以下几个属性:
1、rel,代表“关系”(relation),在这里,关系(即rel值)为“stylesheet”;
2、type,总是设置为“text/css”,描述了使用link加载的数据类型;
3、href,值为样式表的URL,可以是相对的也可以是绝对的;
4、media,默认值是“all”,说明样式表要运用于表现的媒体,还有其他取值:aural(用于语音合成器、屏幕阅读器和文档的其他声音表现)、braille(用Braille设备表现文档时使用)、embossed(用Braille设备打印时使用)、handheld(用于手持设备)、print(为视力正常的用户打印文档时使用,还会在显示文档的“打印预览”时使用)、projection(用于投影仪)、screen(在屏幕媒体,如计算机显示器中使用)、tty(在固定间距环境,如电传打印机中显示文档时使用)、tv(在电视上显示文档时使用)。不过,各个浏览器对它们的支持情况可能不同。
5、title,不常用,但是当rel值为“alternate stylesheet”时,使用title属性可以生成一个候选样式表列表供用户选择。
当rel值为“alternate stylesheet”时,还可以提供候选样式表,只有在用户选择这个样式表时才用于文档表现。代码示例如下:
<link rel="stylesheet" type="text/css" href="style1.css" media="screen,print" /><!-- media属性可以有多个值,用逗号隔开 --> <link rel="alternate stylesheet" type="text/css" href="style2.css" media="screen,print" title="big" /><!-- alternate指定候选样式表 --> <link rel="alternate stylesheet" type="text/css" href="style3.css" media="screen,print" title="small" />
除此之外,我们还可以使用内部样式表为页面添加样式:
<style type="text/css"> <!-- /* 把声明的样式包含在一个html注释中,这样可以解决较老的浏览器不识别style的问题 */ body {background:grey;} --> </style>
经常看到很多朋友在<style>后面加入HTML注释,然后再在里面写样式,终于知道原因如上。
还有一种方法,就是使用@import方法导入样式表,只是要注意以下,摆放的位置,因为@import是css定义的引用样式的方法,所以它应该放在<style>元素里面,而且,它前面不能够有任何其他规则(当然,不包括其它的@import,因为一个<style>里可以放不止一个@import),否则,后面导入的样式讲失效,代码示例:
<style type="text/css"> <!-- /* 把声明的样式包含在一个html注释中,这样可以解决较老的浏览器不识别style的问题 */ @import url("style2.css");/* @import出现在样式表开头 */ body {background:grey;} @import url(style3.css);/* @import前面有样式,所以被忽略 */ --> </style>
关于导入样式表的补充:
导入样式表的方式主要体现于能在一个样式文件中再次导入其他样式表,可以降低HTML文档的复杂性,并且允许在一个样式表中管理所有样式表。由于导入样式表在其他样式前面,所以导入样式表的规则可能会被随后的样式覆盖,这个必须考虑。
虽然在使用@import关键字导入样式表的方式时,@import写在样式表最前面,但浏览器解析的时候是最后才解析的,这样很容易导致IE6中的闪屏或者在打开页面的过程中无样式直到页面加载完毕才会加载样式的现象出现。
----参考《CSS那些事儿》
接下来就是内联样式了,即在HTML标签里添加style属性,里面写需要的样式,但是要注意,@import是不可以用在内联样式中的,代码示例:
<p style="@import url('style3.css');">CSS document</p><!-- 不能在style属性中使用@import -->
像上面的做法是不对的。
暂时这么多,以后会继续补充。^_^