CodeGym /课程 /Frontend SELF ZH /CSS的基本原则

CSS的基本原则

Frontend SELF ZH
第 13 级 , 课程 5
可用

11.1 层叠 (Cascading)

CSS的基本原则包括层叠继承特异性。理解这些原则有助于更好地控制网页的风格和外观。

层叠 (Cascading)

层叠是CSS的一个基本原则,用于确定如何在多个规则冲突时应用样式。浏览器在层叠时使用以下规则来解决冲突:

  1. 来源顺序:样式可以在不同地方定义——外部样式表(CSS文件)、内部样式表(在<style>标签内)和内联样式(在HTML元素的style属性中)。规则按照它们的出现顺序应用。
  2. 特异性:每个选择器都有其特异性级别。选择器的特异性越高,优先级越高。
  3. 重要性 (Importance):带有!important指令的规则具有最高优先级,即使存在其他冲突的规则,也会被应用。

层叠示例:

在这个例子中,背景颜色将是黄色,因为内联样式优先于内部样式。文本颜色将是红色,因为内联样式优先于内部样式。

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <title>CSS层叠示例</title>
          <style>
            body {
              background-color: lightblue; /* 内部样式 */
            }
            p {
              color: green;
            }
          </style>
        </head>
        <body style="background-color: yellow;"> <!-- 内联样式 -->
          <p style="color: red;">CSS层叠示例</p>
        </body>
      </html>
    
  

11.2 继承 (Inheritance)

继承是子元素接受父元素样式的过程。不是所有的CSS属性都会被继承。可继承的属性包括文本颜色、字体家族、行高等。

继承示例:

在这个例子中,<p>元素继承了<body>的字体和颜色,并从.container类继承了字体大小。

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <title>CSS继承示例</title>
          <style>
            body {
              font-family: Arial, sans-serif;
              color: blue;
            }
            .container {
              font-size: 18px;
            }
          </style>
        </head>
        <body>
          <div class="container">
            <p>这个文本继承了body的字体和颜色,字体大小则来自于".container"。</p>
          </div>
        </body>
      </html>
    
  

11.3 特异性 (Specificity)

特异性决定了当多个规则作用于同一元素时,哪个CSS规则将被应用。特异性是基于规则中选择器的数量和类型计算的。

特异性计算规则:

  • 内联样式具有最高的特异性
  • ID选择器的特异性高于类、伪类和属性选择器
  • 类、伪类和属性选择器的特异性高于元素和伪元素选择器
  • 元素和伪元素选择器具有最低的特异性

特异性计算示例:

在这个例子中,文本会是红色的,因为#unique选择器具有最高的特异性。

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <title>CSS特异性示例</title>
          <style>
            p {
              color: blue; /* 特异性 0-0-0-1 */
            }

            .highlight {
              color: green; /* 特异性 0-0-1-0 */
            }

            #unique {
              color: red; /* 特异性 0-1-0-0 */
            }
          </style>
        </head>
        <body>
          <p class="highlight" id="unique">这个文本会是红色的。</p>
        </body>
      </html>
    
  

11.4 重要性 (Importance)

CSS允许开发者通过!important指令显式指定样式的优先级。带有此指令的规则将被应用,而不考虑其他规则的特异性。

使用!important示例:

在这个例子中,文本会是蓝色的,因为带有!important的规则具有最高优先级。

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <title>CSS !important示例</title>
          <style>
            p {
              color: blue !important;
            }

            .highlight {
              color: green;
            }
          </style>
        </head>
        <body>
          <p class="highlight">这个文本会是蓝色的,因为有"!important"。</p>
        </body>
      </html>
    
  

11.5 CSS原则的使用示例

在实际任务中使用CSS原则的示例。

层叠和特异性示例:

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <title>CSS层叠和特异性示例</title>
          <style>
            body {
              background-color: lightgray;
            }

            p {
              color: blue;
            }

            .important {
              color: red;
            }
          </style>
        </head>
        <body>
          <p class="important">这个文本会是红色的,因为.important的特异性高于"p"。</p>
        </body>
      </html>
    
  

继承和特异性示例:

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <title>CSS继承和特异性示例</title>
          <style>
            body {
              font-family: Arial, sans-serif;
              color: blue;
            }

            .container {
              color: green; /* 覆盖body的颜色应用于所有子元素 */
            }

            .highlight {
              color: red; /* 特异性高于.container */
            }
          </style>
        </head>
        <body>
          <div class="container">
            <p class="highlight">这个文本会是红色的,由于.highlight类的特异性。</p>
          </div>
        </body>
      </html>
    
  
1
调查/小测验
伪类第 13 级,课程 5
不可用
伪类
伪类
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION