响应式设计:一套代码,处处得体 | 课型:实习课 | 建议课时:2节
拖窄窗口观察三栏变单栏:媒体查询实战演示。
新窗口运行 下载源码<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>响应式博客</title>
<style>
* { margin: 0; box-sizing: border-box; }
body { font-family: "Microsoft YaHei", sans-serif; background: #f2f6f8; color: #1f2a33; }
header { background: #123a52; color: #38d6c4; text-align: center; padding: 20px; }
.wrap { max-width: 960px; margin: 20px auto; padding: 0 16px;
display: grid; gap: 16px; grid-template-columns: 2fr 1fr; }
.posts { display: grid; gap: 16px; grid-template-columns: repeat(2, 1fr); }
.card { background: #fff; border-radius: 10px; padding: 18px; box-shadow: 0 2px 8px rgba(18,58,82,.08); }
.card h3 { color: #0f8c7f; margin-bottom: 8px; }
aside .card { margin-bottom: 16px; }
/* 断点:平板 */
@media (max-width: 900px) { .posts { grid-template-columns: 1fr; } }
/* 断点:手机 */
@media (max-width: 640px) {
.wrap { grid-template-columns: 1fr; }
header h1 { font-size: 22px; }
}
</style>
</head>
<body>
<header><h1>响应式博客(拖窄窗口试试)</h1></header>
<div class="wrap">
<main class="posts">
<div class="card"><h3>Blog Post 1</h3><p>两栏卡片在平板变单栏。</p></div>
<div class="card"><h3>Blog Post 2</h3><p>手机下侧栏沉到主区下方。</p></div>
<div class="card"><h3>Blog Post 3</h3><p>断点依据内容而不是设备型号。</p></div>
<div class="card"><h3>Blog Post 4</h3><p>移动优先是行业共识。</p></div>
</main>
<aside>
<div class="card"><h3>关于我</h3><p>侧栏区域</p></div>
<div class="card"><h3>标签云</h3><p>HTML CSS JS</p></div>
</aside>
</div>
</body>
</html>任务目标:为已有博客首页完成全设备响应式适配
| 任务内容与评分 |
|---|
| 任务1:添加viewport meta标签(10分) |
| 任务2:设计并实现900px与640px两个断点(30分) |
| 任务3:手机端实现单列堆叠且字号可读(20分) |
| 任务4:用设备模拟器测试三种设备并截图(20分) |
| 任务5:复刻竞赛任务5"现代布局"(20分) |