可以把这个过程想象成盖房子:

(图片来源网络,侵删)
- HTML (div):是房子的结构和骨架,它定义了哪里是客厅、哪里是卧室、哪里是厨房。
<div>就是用来划分这些“房间”的主要工具。 - CSS:是房子的装修和设计,它决定了每个房间的颜色、家具的摆放、墙壁的材质、窗帘的样式等等。
下面,我们将从“模块”的视角,逐步拆解这个过程。
HTML 结构 - 用 div 搭建骨架
div (Division 的缩写) 是一个块级元素,本身没有任何特定的语义,它的核心作用就是作为一个容器,将页面的内容划分成独立的、有意义的逻辑区块。
1 为什么用 div?
- 无语义化:正是因为它没有默认样式和特定含义,所以我们可以用它来构建任何我们想要的布局结构,不受 HTML 标签(如
<header>,<article>)的限制。 - 可嵌套性:
div可以无限层嵌套,就像俄罗斯套娃一样,帮助我们构建复杂的多层结构。 - CSS 的完美搭档:
div是 CSS 最直接、最灵活的作用对象。
2 一个典型的网页 div 结构示例
让我们以一个常见的博客文章页面为例,看看 div 是如何划分模块的。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">我的博客</title>
<!-- 这里我们会引入CSS文件 -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- 整个页面的主容器,方便居中和设置宽度 -->
<div class="page-wrapper">
<!-- 1. 头部模块 -->
<div class="header">
<h1>我的博客</h1>
<nav>
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">lt;/a></li>
<li><a href="#">联系</a></li>
</ul>
</nav>
</div>
<!-- 2. 主要内容区域模块 -->
<div class="main-content">
<!-- 2.1 文章列表模块 -->
<div class="article-list">
<article class="post">
<h2>文章标题一</h2>
<p>这是文章的摘要内容...</p>
</article>
<article class="post">
<h2>文章标题二</h2>
<p>这是另一篇文章的摘要内容...</p>
</article>
</div>
<!-- 2.2 侧边栏模块 -->
<div class="sidebar">
<aside class="widget">
<h3>关于我</h3>
<p>我是一名前端开发者...</p>
</aside>
<aside class="widget">
<h3>标签云</h3>
<div class="tag-cloud">
<a href="#">HTML</a>
<a href="#">CSS</a>
<a href="#">JavaScript</a>
</div>
</aside>
</div>
</div>
<!-- 3. 页脚模块 -->
<div class="footer">
<p>© 2025 我的博客. 保留所有权利.</p>
</div>
</div>
</body>
</html>
结构分析:

(图片来源网络,侵删)
.page-wrapper:整个页面的“地基”和“外墙”,用于控制整个页面的宽度和居中。.header:房子的“大门和玄关”,包含网站的标题和主导航。.main-content:房子的“主要生活区”,它又分为两个子模块:.article-list:客厅,用来展示主要内容(文章)。.sidebar:厨房/书房,用来放置辅助信息(关于我、标签云)。
.footer:房子的“后院”,放置版权信息等。
CSS 样式 - 赋予骨架血肉与灵魂
现在我们有了一个清晰的 div 结构,接下来就是用 CSS 来为这些“模块”穿上“衣服”,进行“装修”。
1 CSS 的核心概念
- 选择器:告诉浏览器我们要对哪个
div进行样式设置,最常用的是类选择器(如.header),因为它允许我们为多个div应用相同的样式,并且样式不会因为 HTML 结构的微小改变而失效。 - 属性:我们要设置的样式,如
width(宽度)、color(颜色)、margin(外边距)等。 - 值:属性的具体取值,如
width: 100%;。
2 模块化 CSS 的实践
我们将为上面的 HTML 结构编写 CSS,通常会创建一个 style.css 文件。
/* style.css */
/* 全局重置和基础样式 */
body {
font-family: 'Arial', sans-serif;
margin: 0;
background-color: #f4f4f4;
}
/* 模块一:页面包装器 */
.page-wrapper {
width: 80%; /* 设置页面宽度 */
max-width: 1200px; /* 设置最大宽度,避免在大屏幕上过宽 */
margin: 20px auto; /* 上下20px外边距,左右自动实现水平居中 */
background-color: #fff; /* 白色背景 */
box-shadow: 0 0 10px rgba(0,0,0,0.1); /* 添加阴影效果 */
}
/* 模块二:头部 */
.header {
background-color: #333; /* 深色背景 */
color: #fff; /* 白色文字 */
padding: 20px; /* 内边距,让内容不贴边 */
text-align: center; /* 文字居中 */
}
.header nav ul {
list-style: none; /* 去掉列表前的点 */
padding: 0; /* 去掉内边距 */
margin: 10px 0 0 0; /* 调整外边距 */
display: flex; /* 使用 Flexbox 布局 */
justify-content: center; /* 水平居中 */
}
.header nav a {
color: #fff;
text-decoration: none; /* 去掉下划线 */
margin: 0 15px; /* 导航项之间的间距 */
}
/* 模块三:主要内容区域 - 使用 Flexbox 布局 */
.main-content {
display: flex; /* 将其子元素(article-list 和 sidebar)变为弹性盒子 */
gap: 20px; /* 子元素之间的间距 */
}
/* 模块三的子模块:文章列表 */
.article-list {
flex: 3; /* 占用3份的空间 */
padding: 20px;
}
/* 模块三的子模块:侧边栏 */
.sidebar {
flex: 1; /* 占用1份的空间 */
padding: 20px;
background-color: #e9e9e9;
}
/* 模块三的孙模块:文章项 */
.post {
background-color: #fff;
border: 1px solid #ddd;
padding: 15px;
margin-bottom: 15px;
border-radius: 5px;
}
/* 模块四:页脚 */
.footer {
background-color: #333;
color: #fff;
text-align: center;
padding: 20px;
margin-top: 20px;
}
样式分析:
.page-wrapper:这是布局的关键。margin: 0 auto;是实现水平居中的经典方法。max-width确保了在大屏幕上内容不会无限拉伸,保证了阅读体验。.header:通过background-color和color定义了视觉风格。padding增加了内容的呼吸感。.main-content:这里我们使用了 Flexbox 布局。display: flex;让它的两个直接子元素(.article-list和.sidebar)并排排列。flex: 3和flex: 1则按比例分配了宽度,使得内容区和侧边栏的比例为 3:1,非常灵活。.sidebar:通过不同的background-color与主内容区区分开来,形成视觉层次。.post:为每个文章项添加了边框、圆角和内边距,使其看起来像独立的卡片,提升了美观度。
div 与 CSS 的协同工作流程
一个典型的网页制作流程如下:

(图片来源网络,侵删)
- 规划与设计:在动代码之前,先用纸笔或设计工具(如 Figma, Sketch)画出网站的布局图,明确划分出哪些是“模块”。
- HTML 结构搭建:根据设计图,使用
<div>标签及其语义化标签(如<header>,<nav>,<main>,<aside>,<footer>)来构建页面的骨架,所有div都应该是无样式的,只关注结构。 - CSS 样式编写:
- 从最外层的容器开始写起(如
.page-wrapper),确定整体布局(宽度、居中)。 - 然后逐层深入,为每个模块添加样式(背景色、内边距、外边距等)。
- 使用 Flexbox 或 Grid 等现代布局技术来安排模块之间的位置关系。
- 处理模块内部的细节样式(如字体、颜色、边框等)。
- 从最外层的容器开始写起(如
- 测试与调整:在不同尺寸的屏幕上(桌面、平板、手机)查看效果,确保布局的响应式和美观性。
总结与最佳实践
| 模块 | div 的角色 |
CSS 的角色 | 最佳实践 |
|---|---|---|---|
| 结构 | 划分区域的逻辑容器,构建页面的骨架。 | 定位与布局:通过定位、浮动、Flexbox、Grid 等技术,确定 div 在页面中的位置和大小关系。 |
语义化优先:优先使用语义化标签(<header>, <article>),只在必要时使用 <div>。 2. 保持结构清晰:合理嵌套,避免过深的层级。 |
| 样式 | CSS 的挂钩:通过 class 或 id 属性,为 CSS 提供精确的作用目标。 |
美化与表现:设置颜色、字体、边距、阴影等视觉属性,让页面变得美观。 | 使用类选择器:避免过度使用 id 和标签选择器,优先使用 .class。 2. 模块化思维:为每个模块写独立的 CSS,避免样式污染。 |
| 行为 | (此模块主要由 JavaScript 负责) | 交互反馈:通过 hover, active, focus 等伪类,提供用户交互时的视觉反馈。 |
关注点分离:HTML 只负责结构,CSS 只负责样式,JavaScript 只负责行为。 |
核心思想:
div 和 CSS 的模块化分析,本质上就是“结构”与“表现”相分离的思想体现。div 负责构建清晰、有逻辑的结构层,而 CSS 负责将这个结构转化为美观、易用的表现层,这种分离使得代码更易于维护、复用和扩展,是现代网页开发的基石。
