您的位置:首页 > Web前端 > CSS

同级情况下CSS的优先级探讨

2010-07-22 02:57 211 查看
CSS的调用方式一共有4种,分别是:行内样式,内嵌式,link链接式,@import导入式,在同级的前提下,我们可以按样就近原则来理解他们的优先级,则越前定义的样式,会被后面的样式覆盖。

假如两个或更多的规定在应用了前三个规定具有相同优先级,则后给出的规则优先于早先给出的规则。如果在网页的HEAD标记中同时使用了STYLE标记符(指定嵌入式样式)和LINK标记符(指定链接式样式),并且这两个样式指定中同时应用了具有同一优先级别的样式,则STYLE标记符和LINK标记符的先后顺序将决定样式的优先级。例如,如果在LINK所链接的样式表(mycss.css)中定义了以下一条样式规则:

H1{color:red}

同时在嵌入式样式定义中也定义了一条规则:H1{color:yellow}

在网页中的样式定义如下所示:

<HEAD>
<LINK rel=stylesheet href="mycss.css" type="text/css"><STYLE><!--H1{color:yellow}-->
</STYLE>
</HEAD>


由于STYLE标记符中定义的样式后出现,因此它具有更高的优先级,所以网页中H1标记符的内容将显示为黄色(yellow)。同样,如果将Link标记符的位置移动到<STYLE></STYLE>标记符之后,则网页中H1标记符的内容将显示为红色(red)。另外,由于直插式样式(使用HTNL标记的style属性设置的样式)的位置最接近于样式作用的标记符,因此它通常具有高优先级。

@import导入式是在嵌入式里面插入的,但是在测试的过程中,却是优先级最低的,因此我认为是浏览器加载完毕后导入样式表时,优先解析了导入的内容,所以成为被后面同级样式覆盖。

在同级的情况下的优先级是:行内样式>内嵌式=link链接式(谁顺序后,谁优先级高)>@import导入式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: