CSS 基础:层叠、优先级与继承

CSS 基础:层叠、优先级与继承

    • 一、层叠(Cascade)
      • 示例:层叠的顺序
    • 二、优先级(Specificity)
      • 优先级规则
      • 示例:优先级的比较
    • 三、继承(Inheritance)
      • 哪些属性会被继承?
      • 示例:继承的效果
    • 四、控制继承
      • 示例:控制继承
    • 五、优先级的计算
      • 示例:优先级的计算
    • 六、内联样式与 `!important`
      • 示例:`!important` 的使用
    • 七、总结

在学习 CSS 的过程中,层叠、优先级和继承是三个非常重要的概念。它们决定了 CSS 样式如何被应用到 HTML 元素上,以及如何处理样式冲突。本文将通过通俗易懂的语言和实际示例,帮助你理解这些概念。


一、层叠(Cascade)

层叠是 CSS 的核心概念之一。简单来说,层叠指的是 CSS 样式规则的顺序会影响最终的样式效果。当多个规则应用于同一个元素时,最后定义的规则会覆盖前面的规则。

示例:层叠的顺序

<h1>这是我的标题。</h1>
h1 {color: red;
}
h1 {color: blue;
}

在这个示例中,<h1> 元素的文本颜色会显示为蓝色,因为后面的规则覆盖了前面的规则。


二、优先级(Specificity)

当多个规则应用于同一个元素时,优先级决定了哪个规则会被应用。优先级由选择器的“具体程度”决定,具体程度越高,优先级就越高。

优先级规则

  1. ID 选择器 > 类选择器 > 元素选择器
  2. 组合选择器(如 div p)的优先级高于单个选择器(如 p
  3. 内联样式(style 属性)的优先级最高

示例:优先级的比较

<h1 class="main-heading">这是我的标题。</h1>
.main-heading {color: red;
}h1 {color: blue;
}

在这个示例中,.main-heading 是类选择器,优先级高于元素选择器 h1,所以文本颜色会显示为红色。


三、继承(Inheritance)

继承是指某些 CSS 属性会从父元素传递到子元素。继承可以减少重复代码,但需要注意并不是所有属性都会被继承。

哪些属性会被继承?

  • 会被继承的属性colorfont-familyfont-size
  • 不会被继承的属性widthheightmarginpadding

示例:继承的效果

<ul><li>项目 1</li><li>项目 2<ul><li>2.1</li><li>2.2</li></ul></li>
</ul>
ul {color: blue;font-size: 20px;
}

在这个示例中,所有 <li> 元素的文本颜色和字体大小都会继承自父元素 <ul>


四、控制继承

CSS 提供了一些特殊值来控制继承行为:

  • inherit:显式地继承父元素的属性值
  • initial:将属性值设置为初始值
  • unset:如果属性可以继承,则使用父元素的值;否则使用初始值
  • revert:将属性值重置为浏览器默认值

示例:控制继承

<ul><li>默认颜色</li><li class="inherit">继承颜色</li><li class="initial">初始颜色</li><li class="unset">取消设置</li>
</ul>
ul {color: green;
}.inherit {color: inherit;
}.initial {color: initial;
}.unset {color: unset;
}

在这个示例中:

  • .inherit 会继承父元素的绿色
  • .initial 会使用初始颜色(黑色)
  • .unset 会继承父元素的绿色

五、优先级的计算

优先级由三个部分组成,按重要性排序如下:

  1. ID 选择器:每个 ID 选择器得 1 分
  2. 类选择器:每个类选择器、属性选择器或伪类得 1 分
  3. 元素选择器:每个元素选择器或伪元素得 1 分

示例:优先级的计算

<div class="container" id="outer"><div class="container" id="inner"><ul><li class="nav"><a href="#"></a></li><li class="nav"><a href="#"></a></li></ul></div>
</div>
/* 优先级:1-0-1 */
#outer a {background-color: red;
}/* 优先级:2-0-1 */
#outer #inner a {background-color: blue;
}

在这个示例中,#outer #inner a 的优先级高于 #outer a,因为前者有两个 ID 选择器。


六、内联样式与 !important

  • 内联样式:直接在 HTML 元素上定义的样式,优先级最高。
  • !important:可以强制覆盖所有样式,但应谨慎使用。

示例:!important 的使用

<p class="better">这是个段落。</p>
<p class="better" id="winning">一个选择器掌管一切!</p>
#winning {background-color: red;border: 1px solid black;
}.better {background-color: gray;border: none !important;
}

在这个示例中,.betterborder: none !important 会覆盖 #winningborder: 1px solid black


七、总结

  • 层叠:样式规则的顺序会影响最终效果。
  • 优先级:选择器的“具体程度”决定了优先级。
  • 继承:某些属性会从父元素传递到子元素。

理解这些概念可以帮助你更好地控制 CSS 样式,避免样式冲突和意外效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/68753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《DeepSeek-R1 问世,智能搜索领域迎来新变革》

DeepSeek-R1是由DeepSeek公司开发的一款创新型人工智能模型&#xff0c;自2024年5月7日发布以来&#xff0c;迅速在AI领域引起广泛关注。该模型凭借其卓越的语言理解能力、高效的数据处理能力、自适应学习能力、高安全性与可靠性以及广泛的应用场景与拓展性&#xff0c;在众多人…

Git进阶之旅:tag 标签 IDEA 整合 Git

第一章&#xff1a;tag 标签远程管理 git 标签 tag 管理&#xff1a; 标签有两种&#xff1a; 轻量级标签(lightweight)带有附注标签(annotated) git tag 标签名&#xff1a;创建一个标签git tag 标签名 -m 附注内容 &#xff1a;创建一个附注标签git tag -d 标签名…

riscv xv6学习笔记

文章目录 前言util实验sleeputil实验pingpongutil实验primesxv6初始化代码分析syscall实验tracesyscall实验sysinfoxv6内存学习笔记pgtbl实验Print a page tablepgtbl实验A kernel page table per processxv6 trap学习trap实验Backtracetrap实验Alarmlazy实验Lazy allocationxv…

Contrastive Imitation Learning

机器人模仿学习中对比解码的一致性采样 摘要 本文中&#xff0c;我们在机器人应用的对比模仿学习中&#xff0c;利用一致性采样来挖掘演示质量中的样本间关系。通过在排序后的演示对比解码过程中&#xff0c;引入相邻样本间的一致性机制&#xff0c;我们旨在改进用于机器人学习…

Baklib揭示内容中台与人工智能技术的创新协同效应

内容概要 在当今信息爆炸的时代&#xff0c;内容的高效生产与分发已成为各行业竞争的关键。内容中台与人工智能技术的结合&#xff0c;为企业提供了一种新颖的解决方案&#xff0c;使得内容创造的流程更加智能化和高效化。 内容中台作为信息流动的核心&#xff0c;能够集中管…

[论文阅读] (37)CCS21 DeepAID:基于深度学习的异常检测(解释)

祝大家新春快乐&#xff0c;蛇年吉祥&#xff01; 《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0…

hunyuan 混元学习

使用了5个subset,也是用了text-image和text-video进行训练的 也是进行了复杂的视频选择。同movie gen. 也进行了模型切断&#xff0c;用拉普拉斯算子找到最清晰的一帧作为训练的起始 训练了不同的模型去选择数据&#xff0c;比如用Dover去选择美观度比较好的数据&#xff0c…

JVM方法区

一、栈、堆、方法区的交互关系 二、方法区的理解: 尽管所有的方法区在逻辑上属于堆的一部分&#xff0c;但是一些简单的实现可能不会去进行垃圾收集或者进行压缩&#xff0c;方法区可以看作是一块独立于Java堆的内存空间。 方法区(Method Area)与Java堆一样&#xff0c;是各个…

感悟人生路

匆匆复匆匆&#xff0c;新春时光沙漏里&#xff0c;过了又来&#xff0c;只是那时和此时。累了&#xff0c;行过百公里&#xff0c;灯光交汇处&#xff0c;都是向往幸福之所。一路长虹&#xff0c;速度跟上节奏&#xff0c;福祉盈门&#xff0c;出入平安。​ 跨越时空&#xff…

火语言RPA--文本内容提取

&#x1f6a9;【组件功能】&#xff1a;通过前后截取、通配符参数组合或纯正则方式提取源字符串中指定的文本内容 配置预览 配置说明 源内容 支持T或# 默认FLOW输入项 进行处理、匹配的对象&#xff0c;若为空&#xff0c;以上一个组件的输出为源内容。 提取方式 前后截取…

JVM的GC详解

获取GC日志方式大抵有两种 第一种就是设定JVM参数在程序启动时查看&#xff0c;具体的命令参数为: -XX:PrintGCDetails # 打印GC日志 -XX:PrintGCTimeStamps # 打印每一次触发GC时发生的时间第二种则是在服务器上监控:使用jstat查看,如下所示&#xff0c;命令格式为jstat -gc…

芯片AI深度实战:给vim装上AI

系列文章&#xff1a; 芯片AI深度实战&#xff1a;私有模型deep seek r1&#xff0c;必会ollama-CSDN博客 芯片AI深度实战&#xff1a;自己的AI&#xff0c;必会LangChain-CSDN博客 芯片AI深度实战&#xff1a;给vim装上AI-CSDN博客 芯片AI深度实战&#xff1a;火的编程AI&…

1/31每日

1. Exception 和 Error 的区别 Exception 和 Error 都是 Throwable 类的子类&#xff0c;但它们有不同的用途和含义。 Exception: 代表程序运行时可以处理的异常情况。Exception 是可预料的&#xff0c;通常是程序逻辑错误或者其他外部因素导致的&#xff0c;程序可以通过捕获…

供应链系统设计-供应链中台系统设计(十四)- 清结算中心设计篇(三)

关于清结算中心的设计&#xff0c;我们之前的两篇文章中&#xff0c;对于业务诉求的好的标准进行了初步的描述&#xff0c;如果没有看的同学可以参考一下两篇文章进行了解&#xff0c;这样更有利于理解本篇的内容。链接具体如下&#xff1a; 供应链系统设计-供应链中台系统设计…

搭建自己的专属AI——使用Ollama+AnythingLLM+Python实现DeepSeek本地部署

前言 最近DeepSeek模型非常火&#xff0c;其通过对大模型的蒸馏得到的小模型可以较轻松地在个人电脑上运行&#xff0c;这也使得我们有机会在本地构建一个专属于自己的AI&#xff0c;进而把AI“调教”为我们希望的样子。本篇文章中我将介绍如何使用OllamaAnythingLLMPython实现…

Golang 并发机制-1:Golang并发特性概述

并发是现代软件开发中的一个基本概念&#xff0c;它使程序能够同时执行多个任务&#xff0c;从而提高效率和响应能力。在本文中&#xff0c;我们将探讨并发性在现代软件开发中的重要性&#xff0c;并深入研究Go处理并发任务的独特方法。 并发的重要性 增强性能 并发在提高软…

【算法应用】基于鲸鱼优化算法求解OTSU多阈值图像分割问题

目录 1.鲸鱼优化算法WOA 原理2.OTSU多阈值图像分割模型3.结果展示4.参考文献5.代码获取 1.鲸鱼优化算法WOA 原理 SCI二区|鲸鱼优化算法&#xff08;WOA&#xff09;原理及实现 2.OTSU多阈值图像分割模型 Otsu 算法&#xff08;最大类间方差法&#xff09;设灰度图像有 L L …

C++ 中的类(class)和对象(object)

在 C 中&#xff0c;类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;是面向对象编程&#xff08;OOP&#xff09;的核心概念。类是一种用户自定义的数据类型&#xff0c;它将数据&#xff08;成员变量&#xff09;和操作这些数据的函数&#xff08;成员函…

项目升级Sass版本或升级Element Plus版本遇到的问题

项目升级Sass版本或升级Element Plus版本遇到的问题 如果项目有需求需要用到高版本的Element Plus组件&#xff0c;则需要升级相对应的sass版本&#xff0c;Element 文档中有提示&#xff0c;2.8.5及以后得版本&#xff0c;sass最低支持的版本为1.79.0&#xff0c;所升级sass、…

数据结构 树1

目录 前言 一&#xff0c;树的引论 二&#xff0c;二叉树 三&#xff0c;二叉树的详细理解 四&#xff0c;二叉搜索树 五&#xff0c;二分法与二叉搜索树的效率 六&#xff0c;二叉搜索树的实现 七&#xff0c;查找最大值和最小值 指针传递 vs 传引用 为什么指针按值传递不会修…