当前位置: 首页 > news >正文

2.css的继承性,层叠性,优先级

1.继承性

### 🌱 什么是“继承性”?

想象一下:你家客厅墙上挂了一幅画,写着“全家人都要用黑色字体写字”。然后你家孩子在自己的房间里写作业,虽然这幅画不在他屋里,但他也自动用了黑色字。

这就是 **“继承”** —— 孩子(内部标签)**自动沿用了** 家长(外部标签)的某个规定。

在网页中:
- 爸妈 = 外层的 HTML 标签(比如 `<body>` 或 `<div>`)
- 孩子 = 里面的标签(比如 `<p>`、`<span>`、`<strong>`)

如果爸妈设置了某些“能被继承”的样式,孩子们不用单独设置,也会**自动长成那个样子**。

---

### ✅ 哪些样式能“传给后代”?(可继承的属性)

这些通常是跟**文字外观**有关的,因为一家人说话写字风格相似嘛!

| 属性 | 通俗解释 |
|------|----------|
| `color` | 字是什么颜色(比如黑色字) |
| `font-size` | 字有多大(比如 16px) |
| `font-family` | 用什么字体(比如微软雅黑、宋体) |
| `text-align` | 文字对齐方式(居中、左对齐等) |
| `line-height` | 行与行之间的高度(行间距) |

👉 **例子:**
```css
body {
color: blue;
font-family: "微软雅黑";
font-size: 18px;
}
```
你不需要给每个 `<p>`、`<span>`、`<div>` 单独设置颜色和字体,它们都会**自动变成蓝色、微软雅黑、18px大小**,就像孩子继承了父母的说话风格。

---

### ❌ 哪些样式不能“传给后代”?(不可继承的属性)

这些是**自己的个性装扮**,不会自动传下去。就像爸妈穿西装打领带,不代表孩子也要穿。

| 属性 | 通俗解释 |
|------|----------|
| `border` | 边框(比如红色边框)→ 是“自己画个圈”,别人看不到 |
| `padding` | 内边距(内容离边的距离)→ 是“我自己呼吸的空间” |
| `margin` | 外边距(和其他人之间的距离)→ 是“我和别人的社交距离” |
| `background` | 背景颜色或图片 → 是“我房间的墙纸”,孩子房间不是同一个墙 |
| `width` / `height` | 宽高 → 是“我自己的身材”,孩子长得不一样 |

👉 **例子:**
```css
div {
border: 2px solid red;
padding: 20px;
background: yellow;
}
```
即使你在 `<div>` 里放了一个 `<p>`,这个 `<p>` 不会自动有红边框、黄背景或内边距。它还是“素颜”的,除非你单独给它设置。

---

### 🧠 打个比方总结:

> 把网页看作一个**家庭族谱**:
>
> - **能继承的样式**:口音、写字风格、说话语气 → 孩子天生就会。
> - **不能继承的样式**:衣服、发型、身高体重、房间装修 → 每个人得自己打扮。

所以:
- 文字类样式(color, font…)在子标签内是可以自动继承的
- 盒子类样式(border, margin, padding…)在子标签内是不能自动继承的

---

### 💡 小提示:怎么知道能不能继承?

记住一句话:
> **凡是“写出来的内容”相关的,一般能继承;  
> 凡是“盒子本身的样子”相关的,一般不能继承。**

---

2.层叠性

> 💡 CSS 的“层叠性”就是这样:  
> **谁在最后,谁最显眼,谁说了算!**

---

### ✅ 真实例子:改字体颜色

假设你有一个网站,所有页面都用同一个 CSS 文件:

```css
/* 全局样式:common.css */
h1 {
color: blue;     /* 标题默认是蓝色 */
}
```

但现在,有一个特别的页面,你想让标题变成红色:

```css
/* 特殊页面样式:special.css */
h1 {
color: red;      /* 我就要红色! */
}
```

你在 HTML 里这样引入:

```html
<link rel="stylesheet" href="common.css">   <!-- 先加载 -->
<link rel="stylesheet" href="special.css">  <!-- 后加载 -->
```

👉 浏览器会怎么处理?  
它会说:“同一个 `h1`,颜色设了两次?那我听**最后一个**的。”

✅ 最终效果:标题是 **红色**!

---

### 🧱 再打个比方:贴海报

你在墙上贴了一张海报:“禁止喧哗”(蓝色字)。

第二天,你觉得不够醒目,又在它上面贴了一张新海报:“**请安静!**”(红色大字)。

结果呢?  
原来那张被盖住了,大家只看到新的。

> 🔁 后贴的覆盖先贴的 —— 这就是“层叠”!

---

### ✅ 为什么这很有用?

想象一个网站有 100 个页面,它们都用同一套“基础样式”(比如字体、颜色、布局)。  
但其中有一个页面是节日活动页,你想让它**标题更大、颜色更喜庆**。

你不需要从头写一套样式,只需要:

1. 保留原来的通用样式(基础装修)
2. 再加一点点“新样式”覆盖你想改的地方(后期装饰)

👉 浏览器自动把它们“叠”起来,显示最终效果。

---

### ⚠️ 注意:顺序很重要!

CSS 的“谁在后面,谁赢”规则,就像排队:
- 后来的插队成功,站到最后。
- 显示的时候,它最靠前,最显眼。

所以:
- 后引入的 CSS 文件 会覆盖前面的
- 同一个文件里,下面写的样式 会覆盖上面的

---

### ✅ 总结一句话(超通俗版):

> CSS 的“层叠性”就像穿衣服:  
> 你先穿了件蓝T恤,又套了件红外套,别人看到的是**外面那件红的**。  
> 哪个样式“穿”在最后,哪个就露在外面,**谁最后打扮,谁说了算!**

---

✅ 所以记住:
> 多次设置同一个样式?  
> 👉 **最后一个生效!**

这就是“层叠”的魔力:**灵活、可覆盖、方便定制**,让网页既能统一风格,又能个性发挥!😎

3.优先级

优先级
样式定义冲突时,按照不同样式规则的优先级来应用样式
行内样式>内部样式(外部样式)
内部样式和外部样式优先级一样,写在后面的生效

http://www.dtcms.com/a/389895.html

相关文章:

  • OpenStack 学习笔记(四):编排管理与存储管理实践(上)
  • list_for_each_entry 详解
  • Perplexity AI Agent原生浏览器Comet
  • 颈椎按摩器方案开发,智能按摩仪方案设计
  • Sui 学习日志 1
  • 六、Java—IO流
  • 数据库 事务隔离级别 深入理解数据库事务隔离级别:脏读、不可重复读、幻读与串行化
  • 从“纸面”到“人本”:劳务合同管理的数字化蜕变
  • ARM架构——学习时钟7.2
  • VS Code 调试配置详解:占位符与语言差异
  • 锁 相关知识总结
  • caffeine 发生缓存内容被修改以及解决方案-深度克隆
  • rust编写web服务06-JWT身份认证
  • 《怪猎:荒野》制作人:PC平台对日本游戏非常重要
  • 大模型训练框架(二)FSDP
  • MySQL——系统数据库、常用工具
  • 蓝桥杯题目讲解_Python(转载)
  • 性能测试监控实践(九):性能测试时,监控docker微服务资源利用率和分析
  • TCP,UDP和ICMP
  • Python语法学习篇(七)【py3】
  • 网页控制鼠标 查看鼠标位置
  • PIT 定时器
  • 【题解】 [蓝桥杯 2019 省 B] 特别数的和
  • 数字隔离器,串口通信的安全之“芯”
  • 山脊图 (Ridgeline Plot):使用 joypy 库,优雅地比较多组数据的分布情况
  • Linux 进程同步以及僵尸进程等知识介绍
  • Python进程和线程
  • 斐波那契数列的递归和迭代实现
  • 时空预测论文分享:规则知识 因果预测框架 面向研究的评估体系 主动适应漂移
  • 《WINDOWS 环境下32位汇编语言程序设计》第18章 ODBC数据库编程