🃏

第1课(上)

卡片的骨架

HTML 结构 + 基础 CSS 美化

2 课时 纯 HTML + CSS 没有 JS

← → 键切换 · 点击底部导航跳转

1 / 16

🎯 这节课做什么

🃏 做一张漂亮的静态卡片
只有 HTML + CSS,没有 JavaScript,纯静态页面
🏗️

搭结构

用 HTML div 搭出卡片的骨架

🎨

写样式

CSS 基础属性:颜色、字体、圆角、阴影

📦

盒子模型

理解 margin / padding / border-radius 的关系

🎤

自由发挥

换颜色、调大小、做自己的版本

⚠️ 按钮还不能按!这节课只做样子,下节课加交互

2 / 16

📄 完整代码总览

这节课的全部代码,一共 115 行,我们逐行讲解:

<!-- 文件结构 -->
第 1行: <!DOCTYPE html> ← 文档类型声明
第 2行: <html lang="zh-CN"> ← 根元素,语言=中文
第 3-6行: <head> 头部信息
第 7-92行: <style> CSS 样式
第94-108行: <body> HTML 内容
第110-114行: <!-- 没有 JS -->

HTML 部分 8 个标签:div.card / h1 / p.subtitle / div.quote-display / div#quoteText / div#quoteAuthor / button.btn
CSS 部分 7 个选择器:body / .card / .card h1 / .subtitle / .quote-display / .quote-text / .quote-author / .quote-author::before / .btn / .btn:hover

每行代码的作用我们一页一页来看 👇

3 / 16

🏗️ HTML 整体结构

一个 HTML 文件的基本骨架:

第1行 <!DOCTYPE html>
第2行 <html lang="zh-CN">
第3行   <head>
第4行     <meta charset="UTF-8">
第5行     <meta name="viewport" ...>
第6行     <title>金句卡片</title>
第7行     <style> ... </style>
第8行   </head>
第9行   <body>
...   内容区域
第114行 </body>
第115行 </html>
📌

第1行:<!DOCTYPE html>

告诉浏览器「这是 HTML5 文档」

📌

第4行:<meta charset="UTF-8">

支持中文显示

📌

第5行:viewport

在手机上也显示正常

4 / 16

🏗️ HTML 卡片内容(第94-108行)

第96行 <div class="card"> ← 最外层卡片
第97行   <h1>✨ 金句卡片</h1> ← 标题
第98行   <p class="subtitle"> ← 副标题
第101行   <div class="quote-display"> ← 展示区
第102行     <div id="quoteText"> ← 金句文字
第103行     <div id="quoteAuthor"> ← 作者
第107行   <button class="btn"> ← 按钮
第108行 </div>
96<div class="card">卡片大容器,class给CSS用
97<h1>✨ 金句卡片</h1>最大字号标题
98<p class="subtitle">副标题,灰色小字
101<div class="quote-display">金句的容器
102<div id="quoteText">金句内容
id 给下节课 JS 用
103<div id="quoteAuthor">作者
107<button class="btn">按钮,现在还点不动

重点 class="xxx" 给 CSS 用 · id="xxx" 给 JS 用

5 / 16

🎨 CSS 详解① — body 样式(第14-24行)

16font-family字体:雅黑 / 苹方,手机电脑都好看
17background-color: #667eea纯色背景(不教渐变色,以后学)
18min-height: 100vhvh = viewport height,100vh=满屏高度
19display: flex弹性布局,让卡片居中
20justify-content: center水平居中
21align-items: center垂直居中
22margin: 0去掉浏览器默认外边距
23padding: 20px四周留白,小屏幕不贴边
💡

100vh 是什么?

100% 的视窗高度。不管屏幕多大,都撑满。

💡

flex 居中

display:flex + justify-content + align-items = 完美居中三件套

6 / 16

🎨 CSS 详解② — .card 卡片样式(第27-35行)

28background: #fff白色背景,和蓝色背景区分
29border-radius: 20px圆角,数字越大越圆
30padding: 48px 40px上下48px,左右40px 内间距
31max-width: 480px最大宽480,太大不好看
32width: 100%小屏幕时自适应宽度
33text-align: center所有文字居中
34box-shadow阴影:右0 下8px 模糊30px 颜色
📦

盒子模型

padding 是 内边距(内容到边框的距离)
margin 是 外边距(边框到其他元素)
border-radius 是 圆角

💡

box-shadow 阴影

box-shadow: X Y 模糊 颜色
例:0 8px 30px rgba(0,0,0,0.15)
= 右0 下8 模糊30 黑15%透明度

7 / 16

🎨 CSS 详解③ — 标题 / 副标题(第37-50行)

.card h1 — 标题

39font-size: 26px字号
40color: #333深灰色(不是纯黑更柔和)
41margin-top: 0去掉标题默认上边距
42margin-bottom: 8px标题和副标题的间距

.subtitle — 副标题

47font-size: 14px小字号
48color: #999浅灰色,弱化
49margin-bottom: 32px距离下面金句区的间距

规律 标题大+深色 → 副标题小+浅色,层次感就出来了

8 / 16

🎨 CSS 详解④ — 金句展示区(第52-73行)

.quote-display 容器

54min-height: 120px最小高度,防止空的时候太扁
55padding: 20px 0上下留白

.quote-text 金句文字

59font-size: 24px大字号,突出金句
60line-height: 1.6行高,1.6倍字号
61color: #333深灰色
62font-weight: 500中等粗细(400普通,700粗)
63margin-bottom: 16px和作者名的间距

.quote-author 作者

67font-size: 15px比金句小
68color: #999浅灰色,弱化作者
69font-style: italic斜体,更像引用

::before 伪元素

71.quote-author::before在作者名字前面加内容
72content: "—— "加上破折号前缀,更文艺
💡

::before 伪元素

不用在HTML里写"——",CSS自动添加,代码更干净

9 / 16

🎨 CSS 详解⑤ — 按钮 .btn(第75-91行)

77padding: 14px 36px按钮内间距,宽宽的舒服
78border: none去掉默认边框
79border-radius: 12px按钮圆角
80background-color: #667eea和背景同色系
81color: #fff白色字
82font-size: 16px字号
83font-weight: 600粗体
84cursor: pointer鼠标变成小手👆
85margin-top: 16px和上面金句保持距离
🎲 换一句

.btn:hover 悬停效果

89.btn:hover鼠标放上去时
90background-color: #5a6fd6颜色变深一点
💡

:hover 是什么?

CSS 伪类,鼠标悬停时触发的样式。让按钮有"反应",用户就知道它可以点。

10 / 16

📦 盒子模型完整图解

margin 外边距
border 边框
padding 内间距
内容区
✨ 金句卡片
➡️

margin 外间距

元素和其他元素的距离
body { margin: 0 } = 去掉浏览器默认间距

padding 内间距

内容和边框的距离
.card { padding: 48px 40px } = 内容和卡片边缘的距离

border-radius 圆角

把直角变成圆角
数值越大越圆,50% 就是圆形

11 / 16

🎨 颜色基础 — 十六进制颜色

代码里 `#667eea`、`#333`、`#fff` 都是颜色:

#667eea

页面背景色
蓝紫色

#333333

标题文字颜色
深灰色

#999999

副标题/作者颜色
浅灰色

记忆 #ffffff = 白 · #000000 = 黑 · #开头后面6位 = 颜色代码

12 / 16

🎯 CSS 选择器总结

这节课用到的所有选择器:

bodybody { ... }标签选择器,选中 <body> 标签
.card.card { ... }类选择器,选中 class="card" 的元素
.card h1.card h1 { ... }后代选择器,选中卡片里的 h1
.subtitle.subtitle { ... }类选择器
.quote-display.quote-display { ... }类选择器
.quote-text.quote-text { ... }类选择器
.quote-author.quote-author { ... }类选择器
::before.quote-author::before伪元素,在元素前加内容
.btn.btn { ... }类选择器
:hover.btn:hover { ... }伪类,鼠标悬停时

规律 .开头 = 类选择器 · :开头 = 伪类/伪元素

13 / 16

📝 代码写在哪?——文件结构

整节课只有一个文件:index.html

📄 index.html

三步写完:

1️⃣

写骨架

第1-6行
<!DOCTYPE> + <head>

2️⃣

写样式

第7-92行
<style> CSS

3️⃣

写内容

第94-108行
<body> HTML

14 / 16

🛠️ 动手步骤(60分钟)

1️⃣ 新建文件(5min)

新建 index.html,打出 DOCTYPE 骨架

2️⃣ 写 HTML(10min)

div.card → h1 → p.subtitle → div.quote-display → div#quoteText → div#quoteAuthor → button.btn

3️⃣ 写 body 样式(10min)

背景色 + flex 居中 + 去掉边距

4️⃣ 写卡片样式(10min)

白色背景 + 圆角 + 内间距 + 阴影

5️⃣ 写文字和按钮(15min)

标题/副标题/金句/作者/按钮的样式

6️⃣ 自由发挥(10min)

换颜色、调阴影、改字体

15 / 16
🎉

这节课学会了

✅ HTML 文件基本骨架

✅ div 嵌套结构(卡片 → 展示区 → 金句)

✅ CSS 类选择器(.class)和后代选择器

盒子模型:margin / padding / border-radius

✅ 7 个 CSS 属性:color / font-size / background / box-shadow 等

:hover 鼠标悬停效果

::before 伪元素加前缀内容

🎊 你做出了第一张漂亮的卡片!

下节课预告 💻 给卡片加上 JavaScript → 让它能动起来!

16 / 16