熟悉 CSS Grid / Flex

2025年7月1日

為什麼要學 Grid 和 Flex?

  • Flex 適合「一維」排版(單一方向:水平或垂直)
  • Grid 適合「二維」排版(同時控制行與列)
  • 現代 RWD(響應式)網頁設計的主力工具,不再需要使用 float、position 搞定複雜排版

CSS Flexbox 基本概念

  • Flex 是容器(container)和項目(items)之間的關係
  • 設定 display: flex 就啟用彈性盒子

容器常用屬性(父層)

屬性 功能 常見值
display啟用 Flexflex
flex-direction主軸方向row(預設), column
justify-content主軸對齊flex-start, center, space-between, space-around
align-items 交叉軸對齊(「垂直於主軸」的方向上如何對齊) stretch, center, flex-start, flex-end
gap項目間距gap: 1rem
flex-wrap 控制當子元素(flex item)超出容器寬度時,是否換行 nowrap:(預設)不換行,項目會被壓縮或溢出容器。
wrap:超出時換到下一行,從上到下排列。
wrap-reverse:超出時換行,但從下到上排列。

項目常用屬性(子層)

屬性 功能
flex-grow放大比例
flex-shrink縮小比例
flex-basis初始大小
flex 上三個的縮寫,例如:flex: 1 1 auto
align-self單個項目對齊

align-itemsjustify-content 的區別

  • align-items: 控制 Flex 項目在交叉軸上的對齊
  • justify-content: 控制 Flex 項目在主軸上的對齊

這兩者一起使用,可以實現 Flex 項目在兩個方向上的精確定位

CSS Grid 基本概念

  • Grid 是一個明確定義「行」和「列」的系統
  • 適合複雜排版(例如卡片、儀表板、表格)

容器常用屬性(父層)

屬性 功能 常見值
display啟用 Gridgrid
grid-template-columns定義欄數repeat(3, 1fr)
grid-template-rows定義列數100px auto 1fr
gap / row-gap / column-gap間距gap: 1rem
justify-items / align-items項目對齊center
place-items合併對齊設定center

項目常用屬性(子層)

屬性 功能
grid-column占幾欄
grid-row占幾行
place-self單一對齊設定

除了排版技巧還想了解一些 javascript 嗎?參考: ES6+ 語法與設計模式

© 2025 Frontend Starter Map. Made with ❤️ using Nuxt 3.

有任何問題歡迎來信討論:

a0912383019@gmail.com