css 权重值(层叠性)实例详解

yizhihongxing

当一个 HTML 元素有多条 CSS 规则可用时,就需要计算 CSS 属性的优先级。CSS 属性的优先级(也称为权重值或层叠性)由选择器的特定性和源排序决定。

我们可以通过以下公式计算 CSS 属性的优先级:

  • 内联样式(通过 style 属性定义的样式)——权重值为 1000。
  • ID 选择器——权重值为 100。
  • 类选择器、属性选择器和伪类选择器——权重值为 10。
  • 元素选择器和伪元素选择器——权重值为 1。
  • 通用选择器(*)、子选择器(>)、相邻选择器(+)以及同层选择器(,)——权重值为 0。

在计算选择器特定性时,我们可以使用以下算法:

  • 对于选择器中包含的 ID 属性值,在特定性值中增加 100。
  • 对于选择器中包含的类属性值、属性选择器和伪类选择器,在特定性值中增加 10。
  • 对于选择器中包含的元素标签名和伪元素选择器,在特定性值中增加 1。

例如,body h1 选择器中包含一个元素标签名和一个元素标签名,因此特定性值为 2。而 #content p 选择器中包含一个 ID 属性值和一个元素标签名,因此特定性值为 101。

用于定义样式的多个样式表中,后定义的样式表将覆盖先定义的样式表。同一样式表中,后定义的规则将覆盖先定义的规则。

以下是两个示例:

示例1

HTML 代码:

<!DOCTYPE html>
<html>
<head>
    <title>CSS 权重值实例1</title>
    <style>
        #content p {
            color: red;
        }

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

在这个示例中,#content p 权重值为 101(1 个 ID 属性值和 1 个元素标签名),而 p 权重值为 1(1 个元素标签名)。因此,#content p 的样式规则将覆盖 p 的样式规则,这意味着段落文字将显示为红色。

示例2

HTML 代码:

<!DOCTYPE html>
<html>
<head>
    <title>CSS 权重值实例2</title>
    <style>
        p:last-child {
            color: red;
        }

        p:first-child {
            color: blue;
        }
    </style>
</head>
<body>
    <div>
        <p>这是第一个段落。</p>
        <p>这是第二个段落。</p>
        <p>这是第三个段落。</p>
    </div>
</body>
</html>

在这个示例中,p:last-childp:first-child 都有相同的特定性值(1 个元素标签名),因此权重值相等。这时我们需要看到对应的 CSS 规则的源顺序。在这里,p:last-child 的样式规则在 p:first-child 的样式规则之后定义,因此 p:last-child 的样式规则将覆盖 p:first-child 的样式规则,这意味着最后一个段落文字将显示为红色。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:css 权重值(层叠性)实例详解 - Python技术站

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

相关文章

  • 利用边框border属性做的网页小符号

    利用CSS的边框border属性可以实现各种有趣的网页小符号,下面是完整的攻略。 1. 创建HTML结构 首先,我们需要创建相应的HTML结构来展示需要使用符号的地方。常见的是用列表 标签来展示符号列表,下面是一个示例: <ul> <li>符号1</li> <li>符号2</li> <li&g…

    css 2023年6月10日
    00
  • JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】

    【JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】】是一篇介绍如何通过JavaScript实现表单验证的文章,其中利用到了策略模式,将验证数据与逻辑分离开来,以便简化代码,提高代码的可读性和可维护性。 一、数据与逻辑分离的思想 在传统的表单验证方式中,通常直接将验证逻辑写在表单元素的事件触发函数中,这样的方式非常不灵活,代码量也非常大,而且不具备可维…

    css 2023年6月10日
    00
  • vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新

    下面是一个完整的攻略,分为以下五个步骤: 1. 数据来源与处理 首先要确定歌手列表数据的来源,比如可以通过接口获取,或者在本地以json文件的形式存储。所获取到的数据需要进行处理,具体来说就是根据歌手的姓名的首字母对其进行分组。可以使用lodash等工具库的groupBy方法进行处理,得到一个以字母为 key、歌手列表为 value 的对象。 示例代码: i…

    css 2023年6月10日
    00
  • 只需20行代码就可以写出CSS覆盖率测试脚本

    下面是详细讲解“只需20行代码就可以写出CSS覆盖率测试脚本”的完整攻略。 什么是CSS覆盖率测试 CSS覆盖率测试是指验证CSS样式文件中哪些CSS选择器在页面渲染中真正被使用到了。通过这种方式可以减小CSS文件的大小,优化页面加载速度和性能。在开发中,使用CSS覆盖率测试可以发现哪些CSS属性没有被使用到,以便于淘汰无用的CSS,减小项目体积。 实现CS…

    css 2023年6月10日
    00
  • SCSS移动端页面遮罩层效果的实现及常见问题解决

    下面来讲解“SCSS移动端页面遮罩层效果的实现及常见问题解决”的完整攻略。 1. 环境准备 在开始实现遮罩层效果之前,我们需要准备以下环境: 安装 Node.js 和 npm 安装 Sass 和 Autoprefixer 2. 实现遮罩层效果 2.1 HTML 结构 首先,在页面中添加一个遮罩层的容器: <div class="mask&qu…

    css 2023年6月11日
    00
  • CSS网页布局:div垂直居中的各种方法

    CSS 网页布局中,要求 div 元素实现垂直居中是一项非常常见的任务。为了实现这一目标,有多种 CSS 技术可以使用。本文将讲解几种主要的方法,并且提供两个有用的代码示例,以帮助您更好地理解。 1. 使用 display:flex 使用 display:flex 属性可以使一个或多个元素在一个容器中居中。以下是实现垂直居中的 flex 属性的 CSS: .…

    css 2023年6月10日
    00
  • Bootstrap导航条的使用和理解3

    Bootstrap是一种流行的前端框架,可用于开发响应式网页。其中,导航条是Bootstrap的常用组件之一。本文将详细讲解Bootstrap导航条的使用和理解,帮助开发者更好地掌握Bootstrap的技术。 导航条的基本布局 Bootstrap的导航条由多个HTML元素组成,包括一个包含导航标签的<nav>元素、一个<ul>元素,以…

    css 2023年6月10日
    00
  • CSS网页布局全精通

    CSS网页布局全精通攻略 CSS网页布局是Web开发中的重要技能之一,它可以帮助开发者实现各种复杂的页面布局效果。本攻略将详细讲解CSS网页布局的全套技巧,包括基本原理、制作方法和示例说明。 1. 基本原理 CSS网页布局的基本原理是使用CSS的盒模型和定位属性来控制元素的位置和大小,从而实现各种复杂的页面布局效果。盒模型包括元素的内容、内边距、边框和外边距…

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