【网页前端】CSS的三大特性层叠性、继承性、优先级

简介: 【网页前端】CSS的三大特性层叠性、继承性、优先级

1. 引言&概述

image.png

我们前面学过,CSS 是层叠样式表,多个样式会作用在同一个 HTML 元素上。

但我们通常会发现,并非所有样式会同时起作用。

例如:以下多段 CSS 代码同时作用于某 div 标签,多个样式显示效果为 红色。

image.png

所以,为了更好地认识 CSS 样式调节,我们需要学习 CSS 的三大特性。

这三大特性分别为:层叠性、继承性、优先级

下面我们来逐步深入。

2. 层叠性

层叠性:为相同选择器设置相同样式。

作用:解决样式冲突问题。

准备代码:

image.png

代码效果:

image.png

分析效果:

image.png

层叠原则总结:

1、 样式冲突,遵循“就近原则”/“最后原则”,哪个样式离标签最近,哪个样式最后设置,就执

行哪个样式

2、 样式不冲突,就不会出现完全 层叠覆盖。

image.png

image.png

3. 继承性

继承性:在 CSS 中,子元素可以继承父元素的某些样式。(

text- , font- , line- , color 等)

作用:简化页面 CSS 代码,降低 CSS 样式复杂度。

image.png

课堂练习:请通过继承性,编写 CSS 代码,实现以下效果

image.png

效果:

image.png

4. 优先级

4.1 单优先级权重算法

优先级:当多个选择器样式同时作用在某一元素上,优先选择生效哪个样式,就是优先级。

优先级作用说明:

选择器相同,则执行层叠性

选择器不同,计算选择器权重,权重大的生效。

选择器权重算法:由 A,B,C,D 四个值组成

值大小顺序:A>B>C>D

例如:1,0,0,0 大于 0,1,0,0

1,0,0,0 大于 0,12,0,0

0,1,0,0 大于 0,0,1,1

0,1,1,0 大于 0,1,0,0

总之: 1  某一位可以不断累加数字,不会向其他位进位

2 、 A 位永远大于 BCD 位,无论其他位数字多少

B 位永远大于 CD 位,无论 CD 位数字多少,以此类推

权重换算表:

image.png

准备代码: 用于课堂练习

image.png

示例代码:

image.png

image.png

image.png

效果及分析

image.png

image.png

4.2 复合优先级权重算法

开发中,我们经常遇到的是复合选择器,而非单一选择器

image.png

所以我们要结合 权重换算表 学习复合优先级权重算法。

1、 出现一次 行内样式,权重中,A +1

image.png

2、 出现一次 ID 选择器,权重中,B +1

3、 出现一次 类选择器 或 伪类选择器 或 属性选择器,权重中,C +1

4 、 出现一次 标签选择器 或 伪元素选择器 ,权重中, D  +1

image.png

image.png

思考:为什么以下代码,最终展示效果为蓝色

image.png

image.png

image.png

4.3 最大优先级设置

在开发中, 为了测试方便,有时我们会提升一段样式代码的优先级到最大,用以展示测试效果。

格式:!important

示例代码:

image.png

效果实现:

image.png

注意事项:

一般用于前端框架开发中,进行代码测试。

开发者开发中尽量不要使用。

(否则导致 JS 控制样式失败,因为 JS 写出的是行内样式,优先级低于 !import )

4.4 总结

多个选择器在选择哪个样式起作用时,优先级高的起作用。

使用权重判断优先级。

权重由四位组成:A,B,C,D

值大小顺序:A>B>C>D

复合优先级权重运算方式:

行内样式是 A 位,1,0,0,0

出现一次 ID 选择器,权重中,B +1

出现一次 类选择器 或 伪类选择器 或 属性选择器,权重中,C +1

出现一次 标签选择器 或 伪元素选择器 ,权重中,D +1



















相关文章
|
7天前
|
前端开发 JavaScript 程序员
前端深入之css篇丨初探【transform】,手把手带你实现1024程序员节动画
前端深入之css篇丨初探【transform】,手把手带你实现1024程序员节动画
|
14天前
|
缓存 移动开发 前端开发
在PWA的开发中,HTML与CSS作为前端技术的基础,发挥着至关重要的作用
【6月更文挑战第14天】PWA(渐进式网页应用)借助HTML和CSS,提供接近原生应用的体验。HTML构建页面结构和内容,响应式设计适应各种设备,语义化标签提升可访问性,Manifest文件配置应用元数据,离线页面保证无网时体验。CSS则用于定制主题样式,创建动画效果,实现响应式布局,并管理字体和图标。两者协同工作,确保PWA在不同环境下的优秀性能和用户体验。随着前端技术进步,HTML与CSS在PWA中的应用将更加深入。
24 2
|
13天前
|
XML 前端开发 JavaScript
前端简介(HTML+CSS+JS)
前端简介(HTML+CSS+JS)
|
17天前
|
前端开发 JavaScript 安全
TypeScript作为一种静态类型的JavaScript超集,其强大的类型系统和面向对象编程特性为微前端架构的实现提供了有力的支持
【6月更文挑战第11天】微前端架构借助TypeScript提升开发效率和代码可靠性。 TypeScript提供类型安全,防止微前端间通信出错;智能提示和自动补全加速跨代码库开发;重构支持简化代码更新。通过定义公共接口确保一致性,用TypeScript编写微前端以保证质量。集成到构建流程确保顺利构建打包。在微前端场景中,TypeScript是强有力的语言选择。
30 2
|
18天前
|
前端开发 开发者
CSS基础-层叠与优先级
【6月更文挑战第10天】本文探讨了CSS中的层叠和优先级概念,解释了层叠上下文和特异性如何决定样式生效。常见问题包括误解后来居上的规则、特异性计算错误及过度使用`!important`。建议开发者理解特异性计算,合理使用层叠上下文,避免不必要的`!important`。通过示例展示了特异性与`!important`对样式的影响,强调实践和理解是提升CSS技能的核心。
|
22天前
|
存储 前端开发 Windows
对于莫名其妙使用smarttomcat上传前端项目失败,上传css等静态资源失败等原因,及解决方法
对于莫名其妙使用smarttomcat上传前端项目失败,上传css等静态资源失败等原因,及解决方法
|
20小时前
|
前端开发
CSS 选择器优先级详解及实例演示
CSS 选择器优先级详解及实例演示
5 0
|
1月前
|
前端开发 Java
前端面试题01(css)
前端面试题01聚焦CSS,涵盖选择器优先级、隐藏元素方法、px与rem差异、重绘与重排解释、元素居中技巧及可继承属性。还探讨了CSS预处理器SASS和LESS的特性。文章提供实例代码展示居中布局的多种实现方式。鼓励读者点赞和支持。
19 0
|
1月前
|
前端开发
前端 CSS 经典:SVG 描边动画
前端 CSS 经典:SVG 描边动画
34 0
|
1月前
|
前端开发
前端 CSS 经典:好看的文字阴影
前端 CSS 经典:好看的文字阴影
24 0