CSS 基本概念

CSS 是用于样式化网页的语言,它有一些重要的核心概念需要理解。

这些概念包括

  • 继承
  • 规则顺序
  • 样式规则层级
  • 特异性
  • 盒子模型

通过学习这些概念,我们可以为有效理解和使用 CSS 打下坚实的基础。

让我们详细看看其中的每一个。


继承

在 CSS 中,继承将样式直接从父元素传递到其子元素。

子元素通常会采用分配给父元素的相同样式,除非它们被赋予了自身的样式。

这种机制确保了网页设计的连贯性。

让我们看一个例子。

<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <link rel="stylesheet" href="style.css" />
        <title>CSS Inheritance</title>
    </head>

    <body>
        <section>
            <h2>This is a heading.</h2>
            <p>This is a paragraph.</p>
            <p>This is a paragraph.</p>
            <p>This is a paragraph.</p>
        </section>
    </body>

</html>
section {
    color: blue;
}

浏览器输出

CSS Inheritance Property Example

在上面的例子中:

section {
    color: blue;
}

section 的所有子元素(即 h2p)的文本颜色设置为 blue

这最大限度地减少了重复声明样式的需要,从而在多个元素之间保持统一。

注意:CSS 中的继承行为是特定于属性的,并非所有属性都会被子元素继承。


规则顺序

规则顺序指的是 CSS 规则应用于 HTML 元素的顺序。

CSS 规则的顺序决定了样式的优先级。后面的规则会覆盖前面的规则,并确保应用最新的样式。

让我们看一个例子。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <link rel="stylesheet" href="style.css" />
        <title>CSS Rule Order</title>
    </head>

    <body>
        <p>This is a paragraph.</p>
    </body>
</html>
p {
    color: red;
}

/* overrides color previous color value */
p {
    color: blue;
}

浏览器输出

CSS Rule Order Example

在这里,段落的颜色是 blue,因为它是在样式表中最后声明的,覆盖了所有先前的值。


样式规则层级

样式规则层级决定了当多条规则针对同一元素时,CSS 规则的优先级。

在 CSS 中,应用以下样式优先级层级:

  • 内联样式:直接在 HTML 元素内应用的样式。
  • ID 选择器:样式化具有特定 ID 的元素。
  • 类和属性选择器:样式化具有特定类或属性的元素。
  • 元素选择器:样式化具有特定标签名的元素。

让我们看一个例子。

<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Style Rule Hierarchy</title>
        <link rel="stylesheet" href="style.css" />
    </head>

    <body>
        <p class=""paragraph"" id="unique">
            This text will be red as the ID selector takes precedence over other
            selectors.
        </p>
    </body>

</html>
/* id selector */
#unique {
    color: red;
}

/* class selector */
.paragraph {
    color: green;
}

/* element selector */
p {
    color: blue;
}

浏览器输出

CSS Style Rule Hierarchy Example

在上面的例子中,ID 选择器覆盖了类和元素选择器的样式。这是因为 ID 选择器的优先级高于类和元素选择器。


特异性

CSS 中的特异性决定了当多条规则针对同一元素时,哪些样式规则具有优先权。

这有助于浏览器优先应用最相关的样式。

让我们看一个例子。

<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <link rel="stylesheet" href="style.css" />
        <title>CSS Specificity</title>
    </head>

    <body>
        <div>
            <p id="para">This is a paragraph.</p>
        </div>
    </body>
</html>
div p {
    color: blue;
}

p {
    color: orange;
}

浏览器输出

CSS Specificity Example

在上面的例子中,元素选择器 p 将所有 p 元素的颜色设置为 orange

然而,选择器 div p 对段落的选择更加特异,因此段落的颜色被设置为 blue

注意:CSS 选择器的特异性越强,其优先级就越高。这意味着,如果两个选择器匹配同一个元素,则会使用更特异的选择器来样式化该元素。


盒子模型

盒子模型规定 HTML 中的每个元素都表示为一个矩形框。它有助于理解元素在网页上的结构以及它们如何相互作用。

让我们看一个例子。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>CSS Box Model</title>
        <link rel="stylesheet" href="style.css" />
    </head>

    <body>
        <h2>CSS Box Model</h2>
        <div>
            <p>This is a <span>paragraph</span> inside div element.</p>
        </div>
    </body>
</html>
h2, div, p, span {
    border: 1px solid;
}

浏览器输出

CSS Box Model Example

在这里,这些样式使所有 h2divpspan 元素都具有 1px 的实线边框。这表明所有元素本质上都是矩形的。

这些核心概念使我们能够理解 CSS 规则的行为方式,并帮助更有效地设计布局。

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战