css串接以及执行优先级

2018年03月05日 09:55 | 2717次浏览 作者原创 版权保护

CSS 的全名为 Cascading Style Sheets。如果只有一个样式表,那『串接』(cascade) 这个部分就不重要。若一个 HTML 文件中包含有多个样式表,那串接这个概念就非常重要了。


串接是指当不同样式表中对相同属性有不同定义时,应该要用哪一个样式表中的定义的规则。

串接及优先权

最基本的规则是,越接近 HTML 本身的样式越有优先权。因此,内行套用的样式通常会有最高的优先权,因为它最接近 HTML 的元素。接下来的是嵌入套用的样式表;这一类的样式表是在 <head></head> 内渲染的。再下来是汇入套用的样式表。若有多个样式表被汇入,越后被汇入的越有优先权。优先权最低的是外部连接套用的样式表。若有多个外部样式表被连接,越后被汇入的越有优先权

另外,每一个浏览器也都有自己的样式表 (这就是为什么超连接文字通常会是蓝色,而且下面有一条线)。这一类的样式表优先权比以上的几种都低。

所以,从最高优先权到最低优先权的排名如下:

1,内行套用的样式表 (Inline stylesheet),

2,嵌入套用的样式表 (Embedded stylesheet)

3,汇入套用的样式表 (Imported stylesheet),

4,外部连接套用的样式表 (Linked stylesheet)

5,浏览器本身的样式表 (Browser's own stylesheet)


浏览器将按照上述顺序执行样式表的指 令。 但是还要一个问题。如果同一种类的多 个规则相互冲突怎么办?比如,如果一 项植入样式表规则将<P>以绿色显示,而 另一个规则要求以红色显示? 多亏聪明的样式表标准的发明人,对于这 种冲突也有一个顺序,但很复杂。这里 有一个极其简单的解决顺序:

1 使用特别说明的样式表规则,例:

BODY { color: green } P { color: red }


有一项规则特别说明<P> 中的文字 一红色显示,但它同时也继承了 <BODY>的绿色规定。但是特别说明 了的规则的重要性要大于继承的规 则,所以<P>之内的文字一红色显 示。

2 应用继承的样式表规则

如果不存在第1步中所列的特别说明 的规则(比如存在特别说明了的多 项规则),则浏览器转向执行继承 的规则。如果找不到继承的规则, 则浏览器转向执行第3步。


3 按照样式表规则在HTML中的显示 顺序执行。

P { color: green } P { color: red }

当无法适用上述规则时,浏览器将 根据规则在代码中显示顺序执行。 在上例中,<P>作为讲座一红色显示, 因为它是最后给出的规则。


小说《我是全球混乱的源头》
此文章本站原创,地址 https://www.vxzsk.com/592.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程