响应式网页设计范文详解
我们将构建一个典型的、现代的单页营销/作品集网站,这个例子将展示如何使用 HTML5语义标签、CSS媒体查询 和 现代CSS技术(如Flexbox和Grid)来创建一个在不同设备上都能完美显示的网页。

(图片来源网络,侵删)
最终效果预览
- 桌面端 (> 768px): 多列布局,导航栏在顶部,内容区域分块清晰。
- 平板端 (768px - 992px): 布局开始收缩,但仍然是多列。
- 手机端 (< 768px): 所有内容变为单列布局,导航栏变为“汉堡菜单”图标以节省空间。
HTML 代码 (index.html)
这是网页的骨架,我们使用了HTML5的语义化标签(如 <header>, <nav>, <main>, <section>, <footer>),这不仅有助于SEO,也让代码结构更清晰、更易于维护。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">响应式网页设计示例</title>
<!-- 引入外部CSS文件 -->
<link rel="stylesheet" href="style.css">
<!-- 引入一个流行的图标库 (Font Awesome) -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
</head>
<body>
<header>
<div class="logo">
<a href="#">MyLogo</a>
</div>
<nav>
<ul class="nav-links">
<li><a href="#home">首页</a></li>
<li><a href="#about">lt;/a></li>
<li><a href="#services">服务</a></li>
<li><a href="#portfolio">作品集</a></li>
<li><a href="#contact">联系</a></li>
</ul>
<!-- 汉堡菜单按钮,默认隐藏 -->
<div class="burger">
<div class="line1"></div>
<div class="line2"></div>
<div class="line3"></div>
</div>
</nav>
</header>
<main>
<section id="home" class="hero">
<div class="hero-content">
<h1>欢迎来到我的响应式世界</h1>
<p>这是一个展示现代响应式网页设计的示例,请尝试调整浏览器窗口大小,或在不同设备上查看效果。</p>
<a href="#about" class="cta-button">了解更多</a>
</div>
</section>
<section id="about" class="content-section">
<h2>关于我们</h2>
<p>这里是关于我们公司的介绍,我们专注于提供高质量的网页设计和开发服务,致力于为客户创造最佳的数字体验。</p>
</section>
<section id="services" class="content-section">
<h2>我们的服务</h2>
<div class="services-grid">
<div class="service-card">
<i class="fas fa-code"></i>
<h3>网页开发</h3>
<p>使用最新的技术栈,构建快速、安全、可扩展的网站。</p>
</div>
<div class="service-card">
<i class="fas fa-mobile-alt"></i>
<h3>移动应用</h3>
<p>为iOS和Android平台开发原生和跨平台移动应用。</p>
</div>
<div class="service-card">
<i class="fas fa-paint-brush"></i>
<h3>UI/UX 设计</h3>
<p>以用户为中心,设计美观、直观且易用的界面。</p>
</div>
</div>
</section>
<section id="portfolio" class="content-section">
<h2>作品集</h2>
<p>这里展示我们的一些精选项目。</p>
</section>
<section id="contact" class="content-section">
<h2>联系我们</h2>
<p>有任何问题或合作意向,请随时与我们联系。</p>
<form>
<input type="text" placeholder="您的姓名">
<input type="email" placeholder="您的邮箱">
<textarea placeholder="您的留言"></textarea>
<button type="submit">发送</button>
</form>
</section>
</main>
<footer>
<p>© 2025 我的响应式网站. 保留所有权利.</p>
</footer>
<!-- 引入外部JavaScript文件 -->
<script src="script.js"></script>
</body>
</html>
CSS 代码 (style.css)
这是网页的样式表,是实现响应式设计的核心,我们将在这里使用 媒体查询 来针对不同屏幕尺寸应用不同的样式。
/* --- 全局样式和变量 --- */
:root {
--primary-color: #007bff;
--secondary-color: #6c757d;
--background-color: #f4f4f4;
--text-color: #333;
--font-family: 'Arial', sans-serif;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth; /* 平滑滚动 */
}
body {
font-family: var(--font-color);
line-height: 1.6;
background-color: var(--background-color);
color: var(--text-color);
}
a {
text-decoration: none;
color: var(--primary-color);
}
h1, h2 {
font-weight: bold;
margin-bottom: 1rem;
}
section {
padding: 4rem 2rem;
text-align: center;
}
/* --- 布局容器 --- */
.container {
width: 90%;
max-width: 1100px;
margin: auto;
}
/* --- 头部导航栏 --- */
header {
background: #fff;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 1000;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 5%;
}
.logo a {
font-size: 1.5rem;
font-weight: bold;
}
.nav-links {
display: flex;
list-style: none;
}
.nav-links li a {
color: #333;
padding: 1rem;
display: block;
transition: color 0.3s ease;
}
.nav-links li a:hover {
color: var(--primary-color);
}
/* --- 汉堡菜单 --- */
.burger {
display: none; /* 默认隐藏 */
cursor: pointer;
}
.burger div {
width: 25px;
height: 3px;
background-color: #333;
margin: 5px;
transition: all 0.3s ease;
}
/* --- 主要内容区 --- */
main {
margin-top: 80px; /* 为固定导航栏留出空间 */
}
.hero {
height: 100vh;
background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://images.unsplash.com/photo-1551288049-bebda4e38f71?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1770&q=80') no-repeat center center/cover;
color: white;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
}
.hero-content h1 {
font-size: 3rem;
margin-bottom: 1rem;
}
.cta-button {
display: inline-block;
padding: 12px 24px;
background: var(--primary-color);
color: white;
border-radius: 5px;
margin-top: 1rem;
transition: background 0.3s ease;
}
.cta-button:hover {
background: #0056b3;
}
/* --- 服务网格布局 --- */
.services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); /* 核心响应式布局 */
gap: 2rem;
margin-top: 2rem;
}
.service-card {
background: #fff;
padding: 2rem;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
transition: transform 0.3s ease;
}
.service-card:hover {
transform: translateY(-10px);
}
.service-card i {
font-size: 2.5rem;
color: var(--primary-color);
margin-bottom: 1rem;
}
/* --- 表单样式 --- */
form {
max-width: 600px;
margin: 2rem auto;
display: flex;
flex-direction: column;
gap: 1rem;
}
form input, form textarea {
width: 100%;
padding: 12px;
border: 1px solid #ddd;
border-radius: 5px;
font-family: inherit;
}
form button {
padding: 12px;
background: var(--primary-color);
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
font-size: 1rem;
transition: background 0.3s ease;
}
form button:hover {
background: #0056b3;
}
/* --- 页脚 --- */
footer {
background: #333;
color: #fff;
text-align: center;
padding: 2rem;
margin-top: 2rem;
}
/* ============================================
响应式设计 (媒体查询)
============================================ */
/* --- 平板设备 (768px 及以下) --- */
@media screen and (max-width: 768px) {
header {
padding: 1rem 2%;
}
.nav-links {
position: fixed;
right: -100%; /* 初始状态在屏幕外 */
top: 70px;
flex-direction: column;
background-color: #fff;
width: 100%;
text-align: center;
transition: right 0.5s ease-in-out;
box-shadow: 0 10px 27px rgba(0,0,0,0.05);
padding: 2rem 0;
}
.nav-links li a {
padding: 1rem;
}
.burger {
display: block; /* 显示汉堡菜单 */
}
/* 汉堡菜单动画 - 激活状态 */
.nav-active .nav-links {
right: 0;
}
.nav-active .burger .line1 {
transform: rotate(-45deg) translate(-5px, 6px);
}
.nav-active .burger .line2 {
opacity: 0;
}
.nav-active .burger .line3 {
transform: rotate(45deg) translate(-5px, -6px);
}
.hero-content h1 {
font-size: 2.5rem;
}
}
/* --- 手机设备 (480px 及以下) --- */
@media screen and (max-width: 480px) {
section {
padding: 3rem 1rem;
}
.hero-content h1 {
font-size: 2rem;
}
.services-grid {
grid-template-columns: 1fr; /* 强制变为单列 */
}
}
JavaScript 代码 (script.js)
这个简单的脚本是用来实现“汉堡菜单”的点击交互功能,让导航栏在移动端可以平滑地展开和收起。
// 等待整个文档加载完成
document.addEventListener('DOMContentLoaded', () => {
// 获取汉堡菜单按钮和导航链接列表
const burger = document.querySelector('.burger');
const nav = document.querySelector('.nav-links');
// 为汉堡菜单按钮添加点击事件监听器
burger.addEventListener('click', () => {
// 切换 'nav-active' 类
// 这个类在CSS中用于控制导航栏的显示/隐藏和动画
nav.classList.toggle('nav-active');
});
});
如何使用这些代码
- 创建文件: 创建三个文件,分别命名为
index.html、style.css和script.js,并将上面的代码分别复制进去。 - 放置图片: 在
index.html中,<header>标签内,我们使用了一张背景图片,你需要准备一张名为your-hero-image.jpg的图片,并确保它与index.html文件在同一个目录下,或者,你可以直接使用我提供的Unsplash链接。 - 打开文件: 用浏览器打开
index.html文件,你可以通过拖动浏览器窗口的边缘来模拟不同设备的屏幕尺寸,观察网页布局的变化。
这个范文涵盖了响应式设计的几个关键点:

(图片来源网络,侵删)
<meta name="viewport">: 这是响应式设计的基石,它告诉浏览器如何控制页面的尺寸和缩放,确保在移动设备上正确渲染。- 流式布局: 使用百分比()或
max-width而不是固定的像素值来设置容器宽度,让内容能够根据浏览器窗口大小自适应。 - 弹性图片和媒体: 通过设置
max-width: 100%;和height: auto;,确保图片和视频永远不会溢出它们的容器。 - 媒体查询: 这是响应式设计的核心工具,它允许你根据特定的条件(如屏幕宽度)应用不同的CSS样式,从而为不同设备优化布局。
- 现代CSS布局: 使用
Flexbox和Grid可以更轻松、更高效地创建复杂的响应式布局,而无需依赖浮动或定位。 - 移动优先: 虽然这个例子是“桌面优先”的(先写桌面样式,再通过媒体查询覆盖为移动样式),但“移动优先”(先写移动样式,再通过媒体查询增强桌面体验)也是一个非常流行的策略,通常被认为是更好的实践。
希望这个详细的范文能帮助你理解和实践响应式网页设计!
