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)

选择器类型 示例 优先级 说明
元素 p 1 所有段落
.card 10 最常用
ID #header 100 慎用(特异性太高)
属性 [type="checkbox"] 10 表单常用
后代 .card p 所有后代 p
子元素 .card > p 直接子元素
相邻兄弟 h2 + p 紧跟 h2 的第一个 p
通用兄弟 h2 ~ p h2 后面的所有 p
:hover / :focus a: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 共识)

特性 Flexbox CSS 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, gap gap 是 flex/grid 神器
边框 border, border-radius border-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 / contents contents 很有用
溢出 overflow: hidden / auto
过渡/动画 transition: all 0.3s; transform will-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),还是想看某个具体组件的完整代码示例(比如响应式卡片、暗黑模式切换、表单美化)?
告诉我你的需求,我可以直接给出代码 + 解释。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐