美文网首页
CSS引入方式和优先级简单介绍

CSS引入方式和优先级简单介绍

作者: 玄木 | 来源:发表于2018-11-02 21:38 被阅读17次

    css引入方式

    1. 内联方式, 内联方式指的是直接在 HTML 标签中的 style 属性中添加 CSS。
    <div style="background: red"></div>
    
    1. 嵌入方式, 嵌入方式指的是在 HTML 头部中的 <style> 标签下书写 CSS 代码。
    <head>
        <style>
        .content {
            background: red;
        }
        </style>
    </head>
    
    ... <div class="content">...</div>
    
    1. 链接方式, 链接方式指的是使用 HTML 头部的 <head> 标签引入外部的 CSS 文件。
    <head>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    
    1. 导入方式,导入方式指的是使用 CSS 规则引入外部 CSS 文件。
    <style>
        @import url(style.css);
    </style>
    

    链接方式(下面用 link 代替)和导入方式(下面用 @import 代替)都是引入外部的 CSS 文件的方式,下面我们来比较这两种方式,并且说明为什么不推荐使用 @import。

    1. link 属于 HTML,通过 <link> 标签中的 href 属性来引入外部文件,而 @import 属于 CSS,所以导入语句应写在 CSS 中,要注意的是导入语句应写在样式表的开头,否则无法正确导入外部文件;

    2. @import 是 CSS2.1 才出现的概念,所以如果浏览器版本较低,无法正确导入外部样式文件;

    3. 当 HTML 文件被加载时,link 引用的文件会同时被加载,而 @import 引用的文件则会等页面全部下载完毕再被加载;

    CSS 优先级

    1. 最近祖先样式优先级比其他祖先样式优先级高

    2. 直接样式比祖先及优先级高

    3. 选择器优先级
      内联样式 > ID选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器

    4. 计算选择符中 ID 选择器的个数(a),计算选择符中类选择器、属性选择器以及伪类选择器的个数之和(b),计算选择符中标签选择器和伪元素选择器的个数之和(c)。按 a、b、c 的顺序依次比较大小,大的则优先级高,相等则比较下一个。若最后两个的选择符中 a、b、c 都相等,则按照"就近原则"来判断。
      如果外部样式表和内部样式表中的样式发生冲突会出现什么情况呢?这与样式表在 HTML 文件中所处的位置有关。样式被应用的位置越在下面则优先级越高,其实这仍然可以用规则 4 来解释。如果样式引用冲突,与引用的位置无关,而与样式书写顺序有关,最后的书写的优先级高

    5. 属性后插有 !important 的属性拥有最高优先级。若同时插有 !important,则再利用规则 3、4 判断优先级。

    注意:选择器的权值不能进位,如规则4中,a比较完后,如果不相等将不比较b,不是abc求和比较

      .blue {
        color: blue;
      }
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
      <!-- <link rel="stylesheet" href="style/sty.css"> -->
      <style>
        @import url("style/sty.css");
        .red {
          color: red;
        }
      </style>
      <link rel="stylesheet" href="style/sty.css">
    </head>
    <body>
      <div class="blue red">什么颜色</div>
      <div class="red blue">什么颜色</div>
    </body>
    </html>
    

    本片的所有内容大部分来自You-Dont-Need-Javascript ,建议直接看这个

    相关文章

      网友评论

          本文标题:CSS引入方式和优先级简单介绍

          本文链接:https://www.haomeiwen.com/subject/gkiwtqtx.html