CSS规则层叠时的优先级算法
CSS 规则的优先级是Web前端开发人员必须理解的一个概念,我们常用的添加样式的方法有4种。
- inline style
- embeded style
- external style
- user style
inline style是丑陋的,它们穿梭在HTML文档中,与HTML元素扭成一团,给Web前端开发人员造成了许多麻烦。它们往往以这样的面目出现:
<p style="color:red;">This is a paragraph.</p>
embeded style比inline style绅士一些,它们也寄宿在HTML文档中,但是它们不屑于与HTML元素扭成一团。它们往往在 <style>
元素中出现:
<style type="text/css" media="screen">
p{
color : red;
}
</style>
external style是个贵族,它不愿意同HTML呆在一起,所以干脆以外部文件的形式独立存在。通常我们使用 <link>
元素或者@import
语句将它们导入HTML。
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
我们应当尽可能使用external style,我想理由有很多,大家都知道,我也就不重复了。
还有一种user style与以上三者略有不同,如果你使用IE浏览器,那么你可以在Tools – Internet Options – General – Appearance – Accessibility – User style sheet 下找到添加user style的地方(原谅我没有中文版的IE浏览器)。
既然我们有如此多的添加style的方法,那么难以避免样式会产生层叠。如:
<p class="intro" style="color:red;">This is a paragraph.</p>
我们在使用以上inline style的同时,又在我们的external style中使用了:
p{
color : yellow;
}
我们甚至还在拥有 class="intro"
的 <p>
元素上应用了:
p.intro{
color : blue;
}
这样我们就 在同一元素的同一属性 color
上,拥有多条CSS规则指定了值 。这种情况被称为层叠(Cascading)。当层叠发生时,CSS Parser将根据优先级算法来确定最终选用的值。
您可能感兴趣的文章:
css中z-index 属性与用法详解
CSS规则层叠时的优先级算法
CSS中绝对定位absolute和相对定位relative详解
实例学习CSS中的优先权的问题
jQuery powerFloat万能浮动层下拉层插件使用介绍
Python如何求解最长公共子序列
php和css有什么关联
PHP运算符优先级的一个例外
js与或运算符优先级实现if else条件判断表达式
CSS中样式覆盖优先顺序详解