浅谈CSS中的继承性,特殊性,层叠性和重要性

浅谈CSS中的继承性、特殊性、层叠性和重要性攻略

继承性

在CSS中,当某个元素没有设置特定的属性时,它会从其父元素中继承该属性。这种继承称为CSS的“继承性”。CSS属性根据其继承性可以分为两类:

  • 可以继承的属性,如color、font-size、text-indent等;
  • 不可继承的属性,如border、margin、padding等。

所有可继承的属性都会被继承到子元素上,但是不可继承的属性不会。

示例1:

<!DOCTYPE html>
<html>
<head>
    <title>CSS继承示例</title>
    <style type="text/css">
        body {
            font-size: 16px;
            color: #333;
        }

        h1 {
            font-size: 2em;
        }
    </style>
</head>
<body>
    <h1>这是一个标题</h1>
    <p>这是一个段落</p>
</body>
</html>

上面这个示例中,p标签继承了body标签的font-size和color属性,而h1标签继承了body标签的color属性,并设置了自己的font-size属性。因此,h1标签中的文字颜色会变成与父元素相同的颜色,但是字体大小会变大。

特殊性

当多个CSS规则应用于同一元素时,可能会出现冲突。这时CSS会通过“特殊性”的概念来解决这个问题。特殊性是用于确定哪些规则将会覆盖其他规则的一种机制,并且它是从选择器中的某些值计算得出的。

CSS中特殊性的计算方法是根据选择器中某些值来进行计算。如以下示例选择器:

h1#title a.link:hover {}

其中,h1选择器特殊性计算公式为:0,1,0,0。#title选择器特殊性计算公式为:0,1,0,1。a.link选择器特殊性计算公式为:0,0,1,1。最后:hover选择器特殊性计算公式为:0,0,0,1。

计算后将四个维度上的值相加得到每条规则的特殊性,然后再进行比较,可得到哪条规则具有更高的特殊性。

示例2:

<!DOCTYPE html>
<html>
<head>
    <title>CSS特殊性示例</title>
    <style type="text/css">
        p {
            color: blue;
        }

        #content p {
            color: red;
        }
    </style>
</head>
<body>
    <div id="content">
        <p>这是一个段落</p>
    </div>
</body>
</html>

上面这个示例中,p标签既匹配了p选择器规则,又匹配了#content p选择器规则,但是因为后者的特殊性更高,所以p标签的文字颜色变成了红色。

层叠性

在CSS中,属性可以同时被多个规则应用,这时就需要使用层叠性来确定属性最终的值。层叠性的原则是:后来的规则会覆盖先前的规则,如果特殊性相同时,则使用后面的规则。

层叠性的实现过程是,首先找到所有匹配的规则,并将其按照特殊性顺序排序。然后将所有规则中具有相同特殊性的属性组合在一起,形成一个属性集合。接着按照顺序将所有属性应用到元素上。

示例3:

<!DOCTYPE html>
<html>
<head>
    <title>CSS层叠性示例</title>
    <style type="text/css">
        p {
            color: blue;
            font-size: 16px;
        }

        p {
            color: red;
        }

        p {
            font-size: 24px;
        }
    </style>
</head>
<body>
    <p>这是一个段落</p>
</body>
</html>

上面这个示例中,p标签同时匹配了三个规则,它们都设置了p标签的color属性,但是由于最后一个规则特殊性更高,所以p标签的颜色最终变为了红色。而对于font-size属性,虽然其中的三个规则都设置了font-size属性,但是最终的font-size属性是24px,因为它就是最后一个规则设置的。

重要性

当样式表中的某一条规则使用!important关键字时,它的特殊性会被提升到最高级,优先级高于所有其他规则,包括内联样式表和行内样式。

!important关键字可以通过覆盖任何其他颜色样式来实现,它也可以在任何字体样式上工作。

示例4:

<!DOCTYPE html>
<html>
<head>
    <title>CSS重要性示例</title>
    <style type="text/css">
        p {
            color: blue !important;
            font-size: 16px;
        }

        #content p {
            color: red;
        }
    </style>
</head>
<body>
    <div id="content">
        <p>这是一个段落</p>
    </div>
</body>
</html>

上面这个示例中,两个规则同时匹配p标记,其中第一个规则设置了p标签的color属性,并使用了!important关键字。因为!important关键字的优先级更高,所以p标签的文字颜色变成了蓝色,而不是匹配第二个规则后变成红色。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈CSS中的继承性,特殊性,层叠性和重要性 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • css实现左侧固定右侧自适应的布局方式

    下面将介绍如何使用CSS实现左侧固定右侧自适应的布局方式。 使用float属性实现左侧固定 我们可以将左侧容器使用float属性设置为左浮动,同时设置宽度,让其固定在页面的左侧,代码示例如下: <style> .left { width: 200px; height: 500px; float: left; background-color: #…

    css 2023年6月10日
    00
  • JS仿京东移动端手指拨动切换轮播图效果

    下面是总体的攻略: 1. 需求分析 首先需要明确需求,也就是要实现一个仿京东移动端的轮播图效果。该效果的主要特点有: 手指拖动轮播图时,图片可以随着手指滑动而跟随移动,并在释放时自动定到下一个或上一个轮播图。 轮播图可以自动循环播放 底部的小圆点可以随着轮播图的切换而同步更新 2. 技术选型 实现这个效果需要使用以下技术: HTML、CSS、JavaScri…

    css 2023年6月10日
    00
  • JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴

    下面我将详细讲解如何实现“JavaScript 轮播图和自定义滚动条配合鼠标滚轮”的效果。 准备工作 在开始编写代码之前,我们需要准备以下工作: HTML 结构:轮播图和滚动条需要放在 HTML 中,并有正确的类名和 ID。 CSS 样式:为轮播图和滚动条提供基础样式,并为鼠标滚轮事件提供支持。 JavaScript 代码:实现轮播图和滚动条的逻辑,并添加鼠…

    css 2023年6月10日
    00
  • 用纯CSS实现禁止鼠标点击事件示例代码

    实现禁止鼠标点击事件可以用到CSS中的pointer-events属性,下面是详细的攻略: 设置pointer-events属性为none 要禁止鼠标点击事件,我们可以为元素设置pointer-events为none,在元素上的所有鼠标事件都将被屏蔽。示例代码如下: .disabled { pointer-events: none; } 在上述示例代码中,我…

    css 2023年6月10日
    00
  • CSS简写小集

    CSS简写小集攻略 简介 CSS简写指的是使用一行代码就能够完成多个 CSS 属性赋值的方式。它能够大幅度缩短 CSS 代码量,增加代码可读性和优雅度。 语法 通用语法格式如下: selector { property1: value1; [property2: value2;] [property3: value3;] […] } 使用 CSS 简写格…

    css 2023年6月10日
    00
  • 易语言修改在访问完网页后超级链接框中文本的颜色

    下面是详细的攻略: 步骤一:获取超链接框的对象 首先,我们需要通过易语言获取到超链接框的对象,可以使用以下代码: Declare Function GetDlgItem Lib "user32.dll" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long Dim hSuperLin…

    css 2023年6月9日
    00
  • 发一个css比较清爽的写法

    要写出比较清爽的 CSS 代码,我们需要遵循以下几个原则: 避免冗余,尽量减少代码的重复。 统一使用缩写属性,如 margin 和 padding 可以使用 margin: 10px 20px 30px 40px; 的方式代替。 注意 CSS 选择器的权重,尽量避免使用过于具体的选择器,以便提高代码的可重用性。 保持结构清晰,让代码易于维护。 下面是两个例子…

    css 2023年6月10日
    00
  • CSS样式表与格式布局详解

    CSS样式表与格式布局详解 CSS(Cascading Style Sheets)是一种用于控制网页样式和布局的语言。本攻略将详细讲解CSS样式表的基本语法、选择器、盒模型、格式布局、浮动、定位、响应式设计等内容。 CSS样式表的基本语法 CSS样式表由选择器和声明块组成。选择器用于选择应用样式的HTML元素,声明块由一组属性和值组成,用于定义元素的样式。例…

    css 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部