郭佳恩前端工程师
返回首页
10 分钟阅读

CSS Grid 布局完全指南:从基础到网格系统

Flexbox 是一维布局的大师,而 Grid 则是二维布局的王者。本文通过丰富的代码示例,带你征服 CSS Grid。

CSSFrontendDesign

CSS Grid Layout 是 CSS 中最强大的布局系统。

1. 定义网格

css
.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 三列等宽 */
  grid-template-rows: 100px 200px;
  gap: 20px;
}

2. 网格区域 (Grid Areas)

这是 Grid 最酷的特性之一,可以直观地描述布局。

css
.item-a { grid-area: header; }
.item-b { grid-area: main; }
.item-c { grid-area: sidebar; }
.item-d { grid-area: footer; }

.container {
  display: grid;
  grid-template-columns: 200px 1fr;
  grid-template-rows: auto 1fr auto;
  grid-template-areas: 
    "header header"
    "sidebar main"
    "footer footer";
}

3. 实现圣杯布局 (Holy Grail Layout)

html
<div class="grid-container">
  <header>Header</header>
  <nav>Nav</nav>
  <main>Main Content</main>
  <aside>Aside</aside>
  <footer>Footer</footer>
</div>
css
.grid-container {
  display: grid;
  min-height: 100vh;
  grid-template-columns: 200px 1fr 200px;
  grid-template-rows: auto 1fr auto;
  grid-template-areas:
    "header header header"
    "nav main aside"
    "footer footer footer";
}

@media (max-width: 768px) {
  .grid-container {
    grid-template-columns: 1fr;
    grid-template-areas:
      "header"
      "nav"
      "main"
      "aside"
      "footer";
  }
}

评论区0

自由讨论你的想法,分享你的实践。

还没有评论

成为第一个发言的人吧