a computer screen with a bunch of lines on it

image unsplash

AI文章 - 網頁設計

突破CSS Grid布局瓶颈:3种罕见但超实用的网格排版技巧

CSS Grid 是一種強大的佈局系統,允許開發者以二維方式(行和列)來設計網頁佈局。以下是如何使用 CSS Grid 設計佈局的基本步驟和概念:

  1. 定義 Grid 容器

首先,將一個元素定義為 Grid 容器,這樣它的子元素就會成為 Grid 項目。

css

复制

.container {

display: grid;

}

  1. 定義行和列

使用 grid-template-rows 和 grid-template-columns 屬性來定義 Grid 的行和列。

css

复制

.container {

display: grid;

grid-template-columns: 1fr 1fr 1fr; /* 三列,每列等寬 */

grid-template-rows: 100px 200px; /* 兩行,第一行高度 100px,第二行高度 200px */

}

  • fr 單位表示「剩餘空間的一部分」,1fr 表示佔用一份剩餘空間。
  • 你可以使用其他單位如 px, %, em 等來定義行和列的大小。
  1. 間距

使用 grid-gap 或 row-gap 和 column-gap 來設置行和列之間的間距。

css

复制

.container {

display: grid;

grid-template-columns: 1fr 1fr 1fr;

grid-template-rows: 100px 200px;

gap: 10px; /* 行和列之間的間距 */

}

  1. 放置 Grid 項目

你可以使用 grid-column 和 grid-row 屬性來控制 Grid 項目在 Grid 中的位置。

css

复制

.item1 {

grid-column: 1 / 3; /* 從第 1 列到第 3 列 */

grid-row: 1; /* 在第 1 行 */

}

 

.item2 {

grid-column: 2 / 4; /* 從第 2 列到第 4 列 */

grid-row: 2; /* 在第 2 行 */

}

  • grid-column 和 grid-row 的值可以是數字、span 關鍵字或 auto。
  1. 自動佈局

如果你不想手動放置每個項目,Grid 會自動將項目放置在可用的單元格中。

css

复制

.container {

display: grid;

grid-template-columns: repeat(3, 1fr);

grid-auto-rows: 100px;

gap: 10px;

}

  • repeat(3, 1fr) 表示重複 3 次 1fr,等同於 1fr 1fr 1fr。
  • grid-auto-rows 設置自動生成的行的高度。
  1. 響應式設計

使用媒體查詢來調整 Grid 佈局,以適應不同的屏幕尺寸。

css

复制

.container {

display: grid;

grid-template-columns: 1fr;

}

 

@media (min-width: 600px) {

.container {

grid-template-columns: 1fr 1fr;

}

}

 

@media (min-width: 900px) {

.container {

grid-template-columns: 1fr 1fr 1fr;

}

}

  1. 命名區域

你可以使用 grid-template-areas 來定義命名區域,並將項目分配到這些區域。

css

复制

.container {

display: grid;

grid-template-areas:

“header header header”

“sidebar main main”

“footer footer footer”;

}

 

.header {

grid-area: header;

}

 

.sidebar {

grid-area: sidebar;

}

 

.main {

grid-area: main;

}

 

.footer {

grid-area: footer;

}

  1. 對齊和排列

使用 justify-items, align-items, justify-content, 和 align-content 來控制 Grid 項目和整個 Grid 的對齊方式。

css

复制

.container {

display: grid;

grid-template-columns: 1fr 1fr;

justify-items: center; /* 水平對齊 */

align-items: center; /* 垂直對齊 */

}

總結

CSS Grid 提供了極大的靈活性來設計複雜的網頁佈局。通過定義行和列、放置項目、設置間距和對齊方式,你可以輕鬆創建響應式且結構化的佈局。掌握這些基本概念後,你可以進一步探索 Grid 的高級功能,如嵌套 Grid、自動佈局和命名區域等。

https://cssgrid-generator.netlify.app/

https://layout.bradwoods.io/customize