設計師的RWD網頁排版 — Grid layout vs. Flexbox

更新於 發佈於 閱讀時間約 5 分鐘
raw-image

想要簡單輕便的實現網頁自適應式排版,要使用哪一種語法呢?

Flexbox長於小規模佈局,而Grid layout則適於大規模佈局。
● 需要具備哪些知識:基本的HTML,CSS語法。
● 哪些人適合學習?
1.只會基本網頁語法的設計師
2.想要在既有框架下(ex.C/S系统、Adobe Experience Manager)客製化區塊布局
3.所有想快速製作單一簡單頁面的人

Flexbox是單向度的排版,Grid則是包含X軸和Y軸的平面排版方式。

如果你想要簡單輕便的實現單一軸向的自適應式排版,例如導覽列、卡片式排版、相簿等,可以選擇使用Flexbox。如果你想快速實現雙軸平面式,甚至不規則的排版(像平面設計排版那樣的自由),那麼使用Grid layout會更適合也更快速。

Flexbox簡介

Flexbox layout 是基於display:flex或是display: inline-flex的語法,以單向度主軸或交叉軸為方向的排版。

這個語法透過 flex-flow 的各項數值能輕易的實現適應式排版, flex-flow 能決定排版以實際物理的方向 (上/右/下/左)、直行或橫列排版(row/ column)以及Flex item 遇到Flex Container的寬度極限時,超出或換行排列。 flex規定元素如何伸長或縮短以適應flex容器中的可用空間。

raw-image

Flexbox的語法

∙ display

首先,必須先將display設為flex或是inline-flex才能運作,這兩者的差別是 block-level 和 inline-level 的差異,通常直接設定為flex就可以了。

關於block-level和inline-level更詳細的解釋可以參考這裡

display: flex | inline-flex;

∙ flex-direction

直行或橫列排版,也可以使之反向。用來決定內容元素的方向。d

flex-direction: row | row-reverse | column | column-reverse;

∙ flex-wrap

決定內容元素撐滿容器寬度時,是否換行。在自適應式排版時會是重要的功能。

flex-wrap: nowrap | wrap | wrap-reverse;

∙ order

控制元件的順序,在自適應時很好用,可以將某些元件順序上提。

order: 數字整數;

∙ flex-flow

flex-direction和flex-wrap簡化版本,可以將兩個數值寫在一起。

flex-flow: <‘flex-direction’> | <‘flex-wrap’>

∙ flex

Flexbox最重要的數值,分別是flex-grow、flex-shrink 和flex-basis。規定元素如何伸長或縮短以適應flex容器中的可用空間。

raw-image
  • flex-grow 決定了元素的增長值,預設是0,是一個不帶單位的數字。當容器剩餘空間>子元素加總空間時,每個元素分配剩餘空間的值。設置flex-grow為 1 ,子元素允許自動填滿剩餘空間。
raw-image
  • flex-shrink 決定了元素的收縮值,預設是1,是一個不帶單位的數。當容器剩餘空間<子元素加總空間時,每個元素對於多出剩餘空間縮減的值。設置flex-shrink為 0 的子元素不允許收縮。
  • flex-basis 是元素的初始大小,預設是auto。這個值是一個帶單位的數字。
flex: none | [ <‘flex-grow’>|<‘flex-shrink’>|<‘flex-basis’>]

用這個國旗的例子來試試看吧🇫🇷

∙ align-items

用來使元素在交叉軸方向上(垂直線)對齊

raw-image
align-items: flex-start | flex-end | center | stretch

∙ justify-content

屬性用來使元素在主軸方向上(水平線)對齊

raw-image
justify-content: flex-start | flex-end | center | baseline | stretch

以上是各項數值的介紹,如果想要深入了解,可以閱讀W3C的文件,裡面有更詳細的介紹。

透過下面範例實際調整各個參數玩玩看🙌

實際應用 Takeout

raw-image
raw-image
參考資料
Basic concepts of flexbox
深入解析CSS Flexbox

謝謝你看到這裡,歡迎分享!

raw-image
Hello,我是Vera,總是在思考優化工作流程方法的Designer,喜歡設計、藝術和文學。
如果有任何建議或合作提案可以透過以下這些方式聯繫。
BehanceDribbbleWebsite
留言
avatar-img
留言分享你的想法!
avatar-img
Vera Chang的沙龍
29會員
10內容數
Visualizing, Hearing & Seeing. Design vitamin for creative mind. 這本設計線上誌希望提供更多元的創作靈感,包含視覺設計、品牌與文字閱讀的綜合設計維他命。
Vera Chang的沙龍的其他內容
2024/01/24
臺北雙年展的「小世界」是一場讓人深思的藝術之旅,除了聚焦於不同世界文化的差異,還描繪了一種類似「小確幸」的感覺,藝術家運用了「微觀」和「封閉生態圈的創造邏輯」兩大手法,展覽中的作品令人感觸良多。
Thumbnail
2024/01/24
臺北雙年展的「小世界」是一場讓人深思的藝術之旅,除了聚焦於不同世界文化的差異,還描繪了一種類似「小確幸」的感覺,藝術家運用了「微觀」和「封閉生態圈的創造邏輯」兩大手法,展覽中的作品令人感觸良多。
Thumbnail
2023/07/27
Midjourney生成式AI利用強大技術,讓設計師輕鬆創造多樣風格的Line貼圖,充滿獨特魅力。不僅提高設計效率,也激發無限創意,帶來全新創作體驗,革新平面設計。這篇文章詳解Midjourney設計步驟與生成設計成果!
Thumbnail
2023/07/27
Midjourney生成式AI利用強大技術,讓設計師輕鬆創造多樣風格的Line貼圖,充滿獨特魅力。不僅提高設計效率,也激發無限創意,帶來全新創作體驗,革新平面設計。這篇文章詳解Midjourney設計步驟與生成設計成果!
Thumbnail
2021/08/07
除了好的設計,品牌成功最重要的秘訣:完整的顧客歷程與經驗感受。 何謂品牌力?好的品牌設計對公司內部員工與外部顧客分別有什麼重要意義?
Thumbnail
2021/08/07
除了好的設計,品牌成功最重要的秘訣:完整的顧客歷程與經驗感受。 何謂品牌力?好的品牌設計對公司內部員工與外部顧客分別有什麼重要意義?
Thumbnail
看更多
你可能也想看
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
Flexbox一種強大佈局技術,主要用於一維排列 的元素。它提供了更靈活的對齊方式,能夠輕鬆控制子元素的方向、對齊方式、間距與自適應能力,適用於現代網頁設計與響應式開發。使用方式為在 HTML 的父元素當中,透過寫入 display:flex; 這行語法,即能夠讓子元素產生各種排列的方式。
Thumbnail
Flexbox一種強大佈局技術,主要用於一維排列 的元素。它提供了更靈活的對齊方式,能夠輕鬆控制子元素的方向、對齊方式、間距與自適應能力,適用於現代網頁設計與響應式開發。使用方式為在 HTML 的父元素當中,透過寫入 display:flex; 這行語法,即能夠讓子元素產生各種排列的方式。
Thumbnail
在這一章節中,我們介紹了 Flexbox 這個 CSS 模型及其用法,重點講解了 Flex 容器和項目的各種屬性。通過具體的示例,展示了如何使用 Flexbox 進行一維佈局設計,並且通過實踐案例,展示了多行 Flex 項目和不同對齊方式的應用。
Thumbnail
在這一章節中,我們介紹了 Flexbox 這個 CSS 模型及其用法,重點講解了 Flex 容器和項目的各種屬性。通過具體的示例,展示了如何使用 Flexbox 進行一維佈局設計,並且通過實踐案例,展示了多行 Flex 項目和不同對齊方式的應用。
Thumbnail
本篇習作內容進入到 CSS 排版實作,一起瞭解 Flexbox,開始第一個網頁排版吧 💪🏻!
Thumbnail
本篇習作內容進入到 CSS 排版實作,一起瞭解 Flexbox,開始第一個網頁排版吧 💪🏻!
Thumbnail
在 Modern Web 的世界中,已經有非常多的套件、語法、框架,可以解決大部分網頁排版問題。 以我近期的觀察來說,在專案開發時,大部分公司會為了讓下一個接手、維護的開發者能更快上手專案架構,而採取原生的 CSS 寫法,而不是仰賴快速又方便的套件。
Thumbnail
在 Modern Web 的世界中,已經有非常多的套件、語法、框架,可以解決大部分網頁排版問題。 以我近期的觀察來說,在專案開發時,大部分公司會為了讓下一個接手、維護的開發者能更快上手專案架構,而採取原生的 CSS 寫法,而不是仰賴快速又方便的套件。
Thumbnail
都市傳說:「網頁跑版時,設定 box-sizing: border-box一切搞定!」
Thumbnail
都市傳說:「網頁跑版時,設定 box-sizing: border-box一切搞定!」
Thumbnail
css grid在排版非常好用,搭配media query即可達到RWD的效果,以下直接附上sample code: E 結果如下: width > 1200px: width width width 接著刻意讓第三個框框高度設為400px,畫面結果如下: 可以看到第二列的格
Thumbnail
css grid在排版非常好用,搭配media query即可達到RWD的效果,以下直接附上sample code: E 結果如下: width > 1200px: width width width 接著刻意讓第三個框框高度設為400px,畫面結果如下: 可以看到第二列的格
Thumbnail
相信大家在一開始接觸 CSS 時,一定會很疑惑為什麼除了 width 外,還會有 max-width 及 min-width 語法呢? 當要開發響應式網頁時,到底要使用什麼語法來控制「斷點」?
Thumbnail
相信大家在一開始接觸 CSS 時,一定會很疑惑為什麼除了 width 外,還會有 max-width 及 min-width 語法呢? 當要開發響應式網頁時,到底要使用什麼語法來控制「斷點」?
Thumbnail
在 pxCode 裡,我們也建議應用相同的概念 —— 在切版前先進行一輪的【思考切版】。當有了結構概念之後,再動手執行,會更有效率!
Thumbnail
在 pxCode 裡,我們也建議應用相同的概念 —— 在切版前先進行一輪的【思考切版】。當有了結構概念之後,再動手執行,會更有效率!
Thumbnail
明明想要某個欄位的寬高為 200px,卻發現自己不知道為什麼怎麼更改都會改不動,又或者寬高更改了,卻沒有辦法與其他元素並列。 上述的狀況,通常都是在不熟悉 HTML display 特性而產生的狀況下才會出現⋯⋯
Thumbnail
明明想要某個欄位的寬高為 200px,卻發現自己不知道為什麼怎麼更改都會改不動,又或者寬高更改了,卻沒有辦法與其他元素並列。 上述的狀況,通常都是在不熟悉 HTML display 特性而產生的狀況下才會出現⋯⋯
Thumbnail
Flexbox長於小規模佈局,而Grid layout則適於大規模佈局。 Flexbox是單向度的排版,Grid則是包含X軸和Y軸的平面排版方式。 如果你想要簡單輕便的實現單一軸向的自適應式排版,例如導覽列、卡片式排版、相簿等,可以選擇使用Flexbox。如果你想快速實現雙軸平面式,甚至不規則的排版
Thumbnail
Flexbox長於小規模佈局,而Grid layout則適於大規模佈局。 Flexbox是單向度的排版,Grid則是包含X軸和Y軸的平面排版方式。 如果你想要簡單輕便的實現單一軸向的自適應式排版,例如導覽列、卡片式排版、相簿等,可以選擇使用Flexbox。如果你想快速實現雙軸平面式,甚至不規則的排版
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News