mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
335 字
1 分鐘
CSS Grid template-areas:不規則九宮格布局筆記
2026-06-12

grid-template-areas 可以用命名區域描述版面,比起手動計算 grid-column / grid-row,更適合維護「不規則拼圖式」的布局。

核心概念#

先在父層宣告 grid,並用文字地圖描述每個區塊的位置:

.home-grid {
display: grid;
grid-template-columns: 1fr 1fr 1.2fr;
grid-template-rows: auto auto auto;
gap: 10px;
grid-template-areas:
"announce announce gif1"
"png picture gif2"
"png text text";
}

接著把每個子元素分配到對應區域:

.announce-bar { grid-area: announce; }
.gif-area-1 { grid-area: gif1; }
.gif-area-2 { grid-area: gif2; }
.png-area { grid-area: png; }
.center-image { grid-area: picture; }
.text-area { grid-area: text; }

重點是每一行的區域名數量必須等於 grid-template-columns 定義的欄數;以上範例是三欄,所以每一行都要有三個區域名,否則整個區域布局會失效。

實際效果#

這個布局會形成:

  • 公告欄橫跨左側兩欄。
  • PNG 立繪縱跨左側兩行。
  • 兩個 GIF 分別位於右上與右中。
  • 文字區橫跨底部右側兩欄。

這種寫法適合首頁拼貼、作品展示、Y2K 貼紙風格版面,或需要同時放置公告、角色圖、動態素材與短文的區塊。

響應式處理#

小螢幕上可以把網格退化為單欄,保留閱讀順序:

@media (max-width: 768px) {
.home-grid {
grid-template-columns: 1fr;
grid-template-areas:
"announce"
"gif1"
"picture"
"gif2"
"png"
"text";
}
}

維護提示#

命名區域最好使用語意名稱,例如 announcepicturetext,不要用 a1b2 這類難回想的名稱。之後如果要調整位置,只需要改父層的 grid-template-areas,子元素不用跟著大幅改動。

分享

如果這篇文章對你有幫助,歡迎分享給更多人!

CSS Grid template-areas:不規則九宮格布局筆記
https://yuzakura.blog/posts/dev-notes/css-grid-template-areas-layout/
作者
夕桜白雪
發布於
2026-06-12
許可協議
CC BY-NC-SA 4.0

部分資訊可能已經過時

目錄