【HTML+CSS】week2-summary

作者:mario 发布时间: 2026-08-18 阅读量:10 评论数:0

第 2 周总结:CSS 基础 — 从"毛坯房"到"精装修"

蜗牛往上爬 · 前端工业可视化学习笔记 第 2 周总结
本周从零学习了 CSS 基础三件套:选择器(指哪打哪)、盒模型(每个元素都是盒子)、层叠与优先级(样式冲突时谁说了算)。用 6 天时间,把上周的 HTML “毛坯房"装修成了有渐变、阴影、圆角的"精装房”。


目录


一、本周学了什么

天数

主题

核心知识点

产出

Day 1-2

选择器与引入方式

三种引入方式、4 种基本选择器、4 种组合选择器、伪类

给"设备信息登记"页添加样式

Day 3-4

盒模型与文字样式

四层结构、padding/margin 简写、box-sizing、边框圆角、文字样式

设备卡片

Day 5-6

背景、继承、层叠与优先级

渐变、继承规则、权重计算、层叠原则、默认样式重置

美化版设备卡片

知识图谱

CSS 基础
├── 引入方式
│   ├── 内联样式(style 属性)
│   ├── 内部样式表(<style> 标签)
│   └── 外部样式表(<link> 引入)
│
├── 选择器("指哪")
│   ├── 基本:标签 / .class / #id / *
│   ├── 组合:后代(空格) / 子代(>) / 并集(,) / 交集(紧挨)
│   ├── 伪类::hover / :focus / :first-child / :last-child
│   └── 属性选择器:[attr] / [attr="value"]
│
├── 盒模型("打哪"的核心)
│   ├── 四层:content → padding → border → margin
│   ├── box-sizing:content-box vs border-box
│   ├── 宽高:width / max-width / min-height
│   ├── 边框:border / border-radius
│   └── 阴影:box-shadow
│
├── 背景与渐变
│   ├── 纯色:background-color
│   ├── 图片:background-image / repeat / position / size
│   └── 渐变:linear-gradient(方向, 色1, 色2, ...)
│
├── 文字样式
│   ├── font-family / font-size / font-weight / color
│   ├── line-height(推荐无单位值)
│   └── text-align / text-decoration / text-indent
│
├── 层叠与优先级
│   ├── 权重:!important > 内联(1000) > id(100) > class(10) > 标签(1) > *(0)
│   ├── 三条原则:同权重后来居上 / 不同权重高者胜 / !important 碾压一切
│   └── 调试:F12 Styles 面板 → 被划线的 = 被覆盖
│
└── 继承与重置
    ├── 会继承:color / font-* / line-height / text-align
    ├── 不继承:width / height / margin / padding / border / background
    └── 重置:* { margin:0; padding:0; box-sizing:border-box; }

二、三个练习页面回顾

练习 1:样式化设备信息登记页

用时:Day 1-2,约 2 小时

用到的知识点:三种引入方式、标签/class/后代选择器、:hover/:focus 伪类

关键代码

header { background: #1a3a5c; color: white; }
header a { color: #8ecae6; }
header a:hover { color: #ffb703; }
input:focus { border-color: #1a3a5c; box-shadow: 0 0 4px rgba(26,58,92,0.3); }
button:hover { background: #2a5a8c; }

收获:理解了"样式 = 选择器选中 + 属性赋值"的核心模式,:hover:focus 是交互体验的起点。

练习 2:设备卡片

用时:Day 3-4,约 2 小时

用到的知识点:盒模型、padding/margin 简写、border-radius、文字样式

关键代码

* { box-sizing: border-box; }
.device-card {
  width: 280px;
  background: white;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 20px;
}

收获:盒模型是 CSS 布局的基石,border-box 让一切计算变简单。用 F12 Computed 面板能直观看到四层结构。

练习 3:美化版设备卡片

用时:Day 5-6,约 2 小时

用到的知识点:渐变背景、box-shadow、继承、伪类悬停、权重

关键代码

body { background: linear-gradient(135deg, #1a3a5c, #2d6a4f); }
.device-card { box-shadow: 0 8px 30px rgba(0,0,0,0.3); border-radius: 16px; }
.card-header { background: linear-gradient(135deg, #219ebc, #023047); }
.btn-detail:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(2,48,71,0.4); }

收获:渐变 + 圆角 + 阴影 = 从"能用"到"好看"。理解了层叠:body 设全局字体,组件设局部覆盖,互不干扰。


三、认知升级:学 CSS 前 vs 学 CSS 后

维度

学 CSS 前

学 CSS 后

对 CSS 的认识

“给网页加颜色和大小”

结构化地理解:选择器 + 盒模型 + 层叠

样式不生效时的反应

盲目改,不知道原因

开 F12 Styles 面板,看被谁覆盖了

写宽度

直接 width: 200px,不管 padding

border-boxwidth 就是最终宽度

对"每个元素是盒子"的理解

模糊

能画出四层结构,知道 margin 和 padding 的区别

代码复用

每个元素都写一遍样式

用 class 复用,用继承减少重复

背景

只会纯色

会用渐变、图片、cover/contain

工业可视化关联

觉得 CSS 只是"美化"

知道大屏面板就是盒模型 + 渐变 + 阴影


四、本周踩过的坑

原因

解决

写了样式但没生效

被更高权重的规则覆盖

F12 Styles 面板找"划线的样式"

设了 width 但实际比预期大

默认 content-box,padding 和 border 额外占空间

全局 * { box-sizing: border-box; }

两个盒子间距不对

margin 上下塌陷,取最大值

记住这个 CSS 特性,用 padding 或 gap 替代

line-height: 24px 子元素乱

固定值不自适应

改用无单位值 line-height: 1.6

背景图不显示

CSS 里的路径相对于 CSS 文件位置

确认路径关系,用 /../

频繁想用 !important

选择器权重不够

增加选择器精度(如 p.cardp 权重高)


五、CSS 核心模型速记

盒模型速记

┌──── margin ────┐
│ ┌── border ──┐ │
│ │ ┌ padding ┐│ │
│ │ │ content ││ │
│ │ └─────────┘│ │
│ └────────────┘ │
└────────────────┘
  • padding:内容到边框的"呼吸空间"

  • margin:盒子之间的"外部间距"

  • border-boxwidth 包含 paddingborder

优先级速记

!important        → 无敌(慎用)
style="..."       → 1000
#id               → 100
.class  :hover    → 10
p  div            → 1
*                 → 0

同权重 → 后来居上。不同权重 → 高的胜。

选择器速记

标签         → h1          → 所有 h1
.class      → .card       → 所有 class="card"
#id         → #main       → id="main"
后代(空格)   → .nav a      → nav 里的所有 a
子代(>)     → .nav > a    → nav 的直接子 a
并集(,)     → h1, h2      → h1 和 h2 一起
交集(紧挨)   → p.card      → 带 card 类的 p

六、自测清单

全部打勾再进入下一周。

  • [ ] 能默写 CSS 语法规则

  • [ ] 能说出三种 CSS 引入方式及各自适用场景

  • [ ] 能写出标签、class、id、通配符四种基本选择器

  • [ ] 能写出后代、子代、并集、交集四种组合选择器

  • [ ] 能使用 :hover:focus 伪类

  • [ ] 能画出盒模型四层结构(content/padding/border/margin)

  • [ ] 能解释 content-boxborder-box 的区别,并全局使用 border-box

  • [ ] 能写出 paddingmargin 的简写(1-4 个值)

  • [ ] 能写出 border-radiusbox-shadow

  • [ ] 能使用 linear-gradient 渐变背景

  • [ ] 能说出哪些 CSS 属性会继承、哪些不会

  • [ ] 能计算简单选择器的权重,判断冲突时谁生效

  • [ ] 3 个练习页面全部完成并在浏览器验证

  • [ ] 每日博客文章 1 篇(共 3 篇)+ 本篇周总结 = 4 篇完成


七、下周预告

第 3 周:Flex 布局

下周将进入 CSS 布局的核心——Flex 弹性布局。如果说盒模型是"单个盒子怎么算大小",Flex 就是"多个盒子怎么排队"。

预计学习内容:

  • Flex 核心概念:主轴与交叉轴

  • 容器属性:flex-direction / justify-content / align-items / flex-wrap / gap

  • 项目属性:flex-grow / flex-shrink / flex-basis / order / align-self

  • 经典布局:水平导航栏、圣杯布局、卡片列表

动手练:用 Flex 做水平导航栏 + 完整的企业信息展示页。


📎 本文为"蜗牛往上爬"学习博客系列 · 阶段 0(HTML+CSS)第 2 周 · 总结篇

评论