STYLE元素相对来说属于HTML中较新的元素,它也是定义一个样式表最常用的方式,所不同的是,样式本身也出现在文档中。STYLE总是使用TYPE属性,在一个CSS1文档里,正确的值为text/css,就像在LINK标签中的那样。因此,STYLE属性总是以<STYLE TYPE=”text/css”>开始,紧跟后面的是一个或多个样式,最后以一个结尾标签</STYLE>为结尾。
在开始和结尾STYLE标签中的样式将作为文档样式表或嵌入样式表被引用,因为这种样式表是嵌入到文档里的。它包含应用于文档的样式,但也包含有使用@import指示引入的对多个外部样式表的链接。
@import指示:
现在来看一看STYLE标签里都有些什么。首先是一种类似于LINK的标签:@import指示(directive)。如同LINK标签一样,@import能够用于引导浏览器载入一个外部样式表,而且将样式表用于HTML文档。唯一的区别是它们的实际语法格式和位置不同。正如所看到的那样,@import是处于STYLE标签内的,它必须放在这个地方,位于其他CSS规则之前,否则就不能正常工作。
像LINK标签一样,在一个文档里可以有不只一条@import语句。然而与LINK不同的是,每一个@import指示的样式表都会被载入并使用。因此,像下面的这三条语句,所有的三个外部样式表都会被载入,而且所有样式规则都将用于此文档的显示:
@import url(blueworld.css);
@import url(ximicc.css);
@import url(redwin.css);
在例子中除@import语句外,我们还发现了一些普通的样武。它们的具体含义不属于本节讨论的范围,尽管你可以猜到它们是将H1元素设成了赤褐色,将BODY元素的背景设置成了黄色。这些样式构成了嵌入样式表的大部分——简单的、复杂的,长的、短的样式规则。而且一个文档的STYLE元素中不包含任何规则是很少见的。
如果想让老一点儿的浏览器也能访问当前的文档,那么这儿有个重要的警告。你或许也明白,浏览器会忽略它们不能识别的标记;例如,如果一个网页包含一个BLOOPER标签,侧览器会完全忽略这个标签,因为这不是它能识别的标签。样式表同样如此,如果浏览器不能识别STYLE和/STYLE,它就会一起忽略它们,然而在它们之间的声明却不会被忽略。因为它们对浏览器来说是普通文本,因此这个样式声明会出现在网页的顶端,这一问题如图1-5所示:
为了解决这一问题,推荐大家在注释标签里封装样式声明。在我们下面的这个例子里,注释标签的开始符出现在STYLE开始标签的后面,结尾符出现在STYLE结果标签的前面:
这样就会使老式的捌览器完全忽略STYLE标签及其声明,因为HTML的注释是不会显示的。同时那些能识别CSS的浏览器仍然能够读取样式表。
这种策略也有个缺点。有些老一点儿的浏览器,像非常早版本的Netscape Navigator和NCSA Mosaic,在注释方面还存在一些问题。这些问题可能导致花屏甚至使浏览器崩溃,但这只会发生在很少的浏览器版本中,而且这样的浏览器现在几乎没有人使用了。