Web前端前端开发那些事程序员

选择器优先级别

2016-04-07  本文已影响91人  Kou_Guandong

单纯的CSS文件

当我们创建一个CSS文档时,经常遇到样式定义冲突的情况,这时遵从以下规则。

p {color: red}
p {color: blue}
/* 效果为蓝色 */
<body>
<p id="target" class="target">Hello World</p>
</body>

<style>
   p#target {color: black !important}
   p#target {color: red}
   p.target {color: blue}
   p {color: tomato}
   /* 最终效果为黑色 */
</style>

在HTML文件中使用CSS

有多种方法可以把CSS文件导入到HTML中,通常在HTML中出现位置的顺序为:

  1. 在<head>部分通过<link>导入外部样式
  2. 在<head>部分直接写入<style>
  3. 在CSS部分通过 @import 导入外部样式
  4. 直接定义在HTML标签中的style属性

然而,优先级的顺序确是:

  1. 直接定义在HTML标签中的style属性
  2. 在<head>部分直接写入的<style>
  3. 在CSS部分通过 @import 导入的外部样式
  4. 在<head>部分通过<link>导入的外部样式

在以下代码片段中四种导入CSS的方法都使用了,最终呈现出的效果,是级别最高的p标签中的style定义。除非,有 !important 在其他定义方式中出现。

<!DOCTYPE html>
<html>
   <head>
      /* Link in head */
      <link rel="stylesheet" href="css/style.css"/>
      /* Style tag in head */
      <style>
         p {color: tomato}
      </style>
      /* @import in CSS area */
      <style>
         @import url("css/style.css");
      </style>
   </head>
   <body>
      /* Style attribute in HTML element */
      <p style="color: red">Hello World</p>
   </body>
</html>
上一篇下一篇

猜你喜欢

热点阅读