HTML + CSS + JavaScript 快速入门(二):CSS 详解

HTML + CSS + JavaScript 快速入门(二):CSS 详解(2026 年视角)

这是系列第二讲,我们把 CSS(Cascading Style Sheets)讲透。
CSS 的核心使命:控制 HTML 元素的视觉呈现(颜色、间距、大小、布局、动画等)。
2025–2026 年的现代 CSS 已经非常强大:Flexbox + Grid + Container Queries + Subgrid + Cascade Layers 等特性让“纯 CSS 实现复杂响应式布局”变得现实。

1. CSS 引入方式对比(日常选择)

方式写法示例适用场景推荐度(2026)
内联样式<h1 style="color:red;">快速测试、邮件模板、动态 JS 注入★☆☆☆☆
内部样式(<style><style> body { margin:0; } </style>单文件演示、组件库 demo★★☆☆☆
外部样式表(推荐)<link rel="stylesheet" href="styles.css">几乎所有真实项目★★★★★
CSS 模块 / Scoped(框架内:CSS Modules、Styled Components、Vanilla Extract)大型组件化项目★★★★☆

现代推荐:始终使用外部 .css 文件 + <link>,并考虑 PostCSS / Tailwind / UnoCSS 等工具链。

2. CSS 选择器速查(高频 Top 15)

选择器类型示例优先级说明
元素p1所有段落
.card10最常用
ID#header100慎用(特异性太高)
属性[type="checkbox"]10表单常用
后代.card p所有后代 p
子元素.card > p直接子元素
相邻兄弟h2 + p紧跟 h2 的第一个 p
通用兄弟h2 ~ ph2 后面的所有 p
:hover / :focusa:hover交互状态
:nth-child(n)li:nth-child(odd)隔行变色经典
:not():not(.active)排除
:has().card:has(img)2023+ 超级强大(父选择子)
[data-*][data-theme="dark"]10自定义属性常用

3. 盒模型(Box Model)——必须彻底搞懂

现代项目几乎都用 box-sizing: border-box;(全局设置)

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

border-box vs content-box 对比:

  • content-box(默认,老思维):width = 内容宽度,实际占用 = width + padding + border
  • border-box(现代标配):width = 内容 + padding + border 的总宽度

4. 现代布局核心:Flexbox vs Grid(2026 共识)

特性FlexboxCSS Grid什么时候选谁?(2026 建议)
维度1维(行或列)2维(行+列)
典型场景导航栏、卡片内容对齐、居中整体页面布局、画廊、表单网格
对子元素控制非常灵活(grow/shrink/order)精确轨道(fr / minmax / auto)
嵌套友好一般(但 Subgrid 2025–2026 解决)
响应式切换容易度★★★★★★★★★☆Flex 更宽容
浏览器支持100%100%(Subgrid ~92–98%)

一句话决策口诀

  • “内容对齐 / 一维排列 → Flexbox”
  • “二维网格 / 显式行列 → Grid”
  • “两者结合” 是最常见模式(Grid 做页面骨架,Flex 做组件内部)

Flexbox 经典写法(背下来)

.container {
  display: flex;                /* 或 inline-flex */
  flex-direction: row;          /* row | column | row-reverse */
  justify-content: center;      /* 主轴对齐 */
  align-items: center;          /* 交叉轴对齐 */
  gap: 1.5rem;                  /* 子元素间距(最常用) */
}

.item {
  flex: 1 1 200px;              /* grow shrink basis */
  /* 简写:flex-grow flex-shrink flex-basis */
}

Grid 经典写法(2026 推荐)

.grid-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.5rem;
  /* 或者显式: 1fr 1fr 1fr; */
}

.card {
  /* 子元素可自行定位 */
  grid-column: span 2;          /* 跨列 */
}

5. 响应式设计(Responsive Design)核心技巧

2026 年主流策略(mobile-first + container queries 趋势)

  1. Mobile-first + media queries
.card {
  padding: 1rem;
}

@media (min-width: 768px) {
  .card {
    padding: 2rem;
    font-size: 1.125rem;
  }
}
  1. Container Queries(组件级响应式,2023–2026 大杀器)
.card-container {
  container-type: inline-size;   /* 声明容器 */
}

@container (min-width: 400px) {
  .card {
    flex-direction: row;
    align-items: center;
  }
}
  • 优点:组件真正可复用,不依赖页面宽度
  • 支持度:2026 年已 >95%,可放心用

6. 常见实用属性速查(日常 Top 20)

属性家族高频属性示例备注
文字color, font-size, font-weight, line-height, text-align
间距margin, padding, gapgap 是 flex/grid 神器
边框border, border-radiusborder-radius: 9999px → 圆形
背景background-color, background-image, background-size: cover
阴影box-shadow: 0 4px 6px rgba(0,0,0,0.1)neumorphism / glassmorphism 常用
定位position: relative / absolute / sticky / fixed
显示display: none / block / flex / grid / contentscontents 很有用
溢出overflow: hidden / auto
过渡/动画transition: all 0.3s; transformwill-change: transform 优化

7. 现代 CSS 最佳实践(2026 年写代码心态)

  • 默认 mobile-first
  • 优先用 rem / em / ch / vw 等相对单位
  • 全局重置:box-sizing: border-box; margin:0; padding:0;
  • 颜色:用 oklch() / color-mix()(更感知均匀)
  • 层叠控制:用 @layer(cascade layers)管理特异性
  • 组件化思维:一个组件尽量自包含样式(container queries 助力)
  • 性能:避免 float::before 大量伪元素、!important 滥用

8. 练习建议 & 下一讲预告

本周小目标:用纯 HTML + CSS 复刻 3 个常见组件

  1. 居中卡片(Flex/Grid 两种写法)
  2. 响应式导航栏(mobile hamburger → desktop horizontal)
  3. 产品卡片列表(auto-fit + minmax + container query 变体)

工具推荐:VS Code + Live Server + CSS Peek 插件 + Firefox/Chrome DevTools(Grid/Flex inspector 超好用)

下一讲预告(HTML + CSS + JS 快速入门(三)):JavaScript 基础详解

  • 变量 / 函数 / 数组 / 对象
  • DOM 操作入门
  • 事件监听
  • 现代写法(箭头函数、解构、模块)

你现在是想重点练习布局(Flex/Grid/Container Queries),还是想看某个具体组件的完整代码示例(比如响应式卡片、暗黑模式切换、表单美化)?
告诉我你的需求,我可以直接给出代码 + 解释。

文章已创建 5225

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部