互联网
html网页制作实例(Grid 布局 html 快速 写一个 网页结构)

  • Grid 是二维的:擅长规划整个页面的大结构。
  • Flexbox 是一维的:擅长排列一行或一列的元素。
  • 最佳实践:通常我们会混用。用 Grid 把页面切成几大块,然后在每一块内部用 Flexbox 来排列内容。

Grid 网页结构 Demo:经典后台布局

<!DOCTYPE html><html lang="zh-CN"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Grid 网页结构 Demo</title>    <style>                * {            margin: 0;            padding: 0;            box-sizing: border-box;        }        body {            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;            min-height: 100vh;                        background-color: #f0f2f5;         }                .wrapper {                        display: grid;                        grid-template-areas:                 "header header"                   "sidebar main"                    "footer footer";                          grid-template-rows: 60px 1fr 50px;                                     grid-template-columns: 200px 1fr;                                     gap: 10px;                                    padding: 10px;        }                header {            grid-area: header;             background-color: #1890ff;             color: white;            display: flex;            align-items: center;            justify-content: center;        }        aside {            grid-area: sidebar;             background-color: #fff;            padding: 20px;            border-radius: 8px;            box-shadow: 0 2px 5px rgba(0,0,0,0.1);        }        main {            grid-area: main;                         display: grid;                        grid-template-columns: 2fr 1fr;             gap: 15px;        }        .content-primary {            background-color: #fff;            padding: 20px;            border-radius: 8px;            box-shadow: 0 2px 5px rgba(0,0,0,0.1);            height: 600px;         }        .content-secondary {            background-color: #fff;            padding: 20px;            border-radius: 8px;            box-shadow: 0 2px 5px rgba(0,0,0,0.1);            height: 300px;         }        footer {            grid-area: footer;            background-color: #333;            color: white;            display: flex;            align-items: center;            justify-content: center;            font-size: 0.9rem;        }    </style></head><body>    <!-- 网格容器 -->    <div class="wrapper">        <!-- 1. 头部 -->        <header>            <h1>网站头部与导航</h1>        </header>        <!-- 2. 侧边栏 -->        <aside>            <h3>侧边栏菜单</h3>            <ul>                <li>仪表盘</li>                <li>用户管理</li>                <li>订单列表</li>            </ul>        </aside>        <!-- 3. 主内容区 (这里又是一个 Grid 容器) -->        <main>            <!-- 主内容左侧 -->            <section class="content-primary">                <h2>主要内容区域</h2>                <p>这里是文章或数据展示区。</p>            </section>            <!-- 主内容右侧 (侧边栏) -->            <section class="content-secondary">                <h3>辅助信息</h3>                <p>这里是广告或状态卡片。</p>            </section>        </main>        <!-- 4. 底部 -->        <footer>            <p>© 2026 我的网站. 版权所有.</p>        </footer>    </div></body></html>




这个写法是 CSS Grid 布局中最直观、最推荐的定义方式之一,叫做“网格模板区域”

简单来说,这段代码的意思是:“请帮我画一个 3 行 2 列的棋盘,并给每个格子起个名字。”

我们来逐行拆解它的含义:

1. 整体结构:像画表格一样写布局

grid-template-areas:   "header header"     "sidebar main"      "footer footer";  

2. 详细解读每一行

第一行:"header header"

  • 写法:两个 header 并排。
  • 含义:这一行有两个格子,我都叫它们 header。
  • 结果:浏览器会自动把这两个格子合并,形成一个横跨两列的“头部区域”。

第二行:"sidebar main"

  • 写法:左边是 sidebar,右边是 main。
  • 含义:这一行有两个格子,左边的叫 sidebar(侧边栏),右边的叫 main(主内容)。
  • 结果:形成左右两栏的布局。

第三行:"footer footer"

  • 写法:和第一行一样,两个 footer。
  • 含义:底部区域也横跨两列。

顶一下()     踩一下()

热门推荐

发表评论
0评