二维布局与竞赛任务1的正面交锋 | 课型:实习课 | 建议课时:3节
2026复刻版竞赛真题:命名区域法实现Site Title/Nav/Post/SideBar经典布局。
新窗口运行 下载源码<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Task 1 - CSS Grid</title>
<style>
* { margin: 0; box-sizing: border-box; }
body { font-family: Arial, "Microsoft YaHei", sans-serif; background: #eef2f5;
display: grid; place-items: center; min-height: 100vh; }
.container { width: 800px; display: grid; gap: 10px;
grid-template-areas:
"header header"
"nav nav"
"post sidebar"
"footer footer";
grid-template-columns: 2fr 1fr; }
.container > div { background: #fff; border: 2px solid #123a52; border-radius: 6px;
padding: 16px; color: #123a52; }
.site-title { grid-area: header; text-align: center; background: #123a52; color: #38d6c4; }
.nav { grid-area: nav; display: flex; gap: 20px; justify-content: center; }
.post { grid-area: post; min-height: 220px; }
.sidebar { grid-area: sidebar; background: #e7f7f4; }
.footer { grid-area: footer; text-align: center; }
</style>
</head>
<body>
<div class="container">
<div class="site-title"><h1>Site Title</h1></div>
<div class="nav"><span>Nav 1</span><span>Nav 2</span><span>Nav 3</span></div>
<div class="post"><h2>Post Title</h2><p>Main Content区域:竞赛要求宽度为侧栏的两倍。</p></div>
<div class="sidebar"><h3>Side Bar</h3><p>grid-area: sidebar</p></div>
<div class="footer">Footer</div>
</div>
</body>
</html>repeat(auto-fill,minmax())实现零媒体查询的响应式卡片网格。
新窗口运行 下载源码<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>自适应网格画廊</title>
<style>
body { font-family: "Microsoft YaHei", sans-serif; margin: 0; padding: 24px; background: #f2f6f8; }
h1 { color: #123a52; }
.gallery { display: grid; gap: 16px;
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.cell { background: linear-gradient(135deg, #1b5a7a, #0f8c7f); color: #fff;
border-radius: 10px; height: 120px; display: flex; align-items: center;
justify-content: center; font-size: 20px; }
</style>
</head>
<body>
<h1>拖动窗口边缘试试</h1>
<div class="gallery">
<div class="cell">1</div><div class="cell">2</div><div class="cell">3</div>
<div class="cell">4</div><div class="cell">5</div><div class="cell">6</div>
<div class="cell">7</div><div class="cell">8</div><div class="cell">9</div>
</div>
</body>
</html>任务目标:按竞赛标准完成Grid博客首页,掌握命名区域法
| 任务内容与评分 |
|---|
| 任务1:用grid-template-areas画出博客布局草图(15分) |
| 任务2:实现header/nav/main/aside/footer五区域(30分) |
| 任务3:主区与侧栏实现2:1宽度比(15分) |
| 任务4:复刻竞赛任务1并通过自查表(30分) |
| 任务5:用auto-fill+minmax制作自适应作品网格(10分) |