CSS-4: Flexbox佈局全解析

更新 發佈閱讀 8 分鐘

Flexbox佈局

它是一種廣受歡迎的佈局技術,使用方式為在 HTML 的父元素當中,寫入 display:flex 這行語法,即能夠讓子元素產生各種排列的方式。

現在考慮以下程式碼:

<div class="container">
<div class="box box1">First</div>
<div class="box box2">Second</div>
<div class="box box3">Third</div>
</div>
.container {
background-color: yellow;
}
.box {
font-weight: bold;
}
.box1 {
background-color: #FF0000;
}

.box2 {
background-color: #00FF00;
}

.box3 {
background-color: #00FFFF;
}

呈現效果:

vocus|新世代的創作平台

此時我們寫入那行語法。

.container {
background-color: yellow;
display: flex;
}

呈現效果:

vocus|新世代的創作平台

透過使用gap屬性一次在所有 Flex 項目之間新增空間:

.container {
background-color: yellow;
display: flex;
gap: 10px;
}

呈現效果:

vocus|新世代的創作平台

預設情況下,子元素的排列方式呈水平,因為flex-direction: 屬性的預設值為row

我們一一更改排列方向:

.container {
background-color: yellow;
display: flex;
gap: 10px;
flex-direction: column;
}

呈現效果:

vocus|新世代的創作平台

好,此時子元素皆佔據了整行螢幕,視覺效果不好,稍微修改一下:

.box {
font-weight: bold;
height: 60px;
width: 60px;
text-align: center;
}

呈現效果:

vocus|新世代的創作平台

好,接下來我們再改變一下父容器的內邊距,並且讓排列方向再次呈水平排列。

.container {
padding: 10px;
background-color: yellow;
display: flex;
gap:6px;
flex-direction: row;
}

呈現效果:

vocus|新世代的創作平台

好,接著我們要使用justify-content屬性,其根據項目對齊方式動態分配空間。其設定方式我們下面一一示範:

  1. flex-start
.container {
padding: 10px;
background-color: yellow;
display: flex;
gap:6px;
flex-direction: row;
justify-content: flex-start;
}

呈現效果:

vocus|新世代的創作平台
  1. flex-end
.container {
padding: 10px;
background-color: yellow;
display: flex;
gap:6px;
flex-direction: row;
justify-content: flex-end;
}

呈現效果:

vocus|新世代的創作平台
  1. center
.container {
padding: 10px;
background-color: yellow;
display: flex;
gap:6px;
flex-direction: row;
justify-content: center;
}

呈現效果:

vocus|新世代的創作平台
  1. space-between,均勻分配項目,第一個項目在開始位置,最後一個項目在結束位置。
.container {
padding: 10px;
background-color: yellow;
display: flex;
gap:6px;
flex-direction: row;
justify-content: space-between;
}

呈現效果:

vocus|新世代的創作平台
  1. space-around,在項目之間分配相等的空間。小方塊與父容器之間的間隔是小方塊彼此間隔的一半。
.container {
padding: 10px;
background-color: yellow;
display: flex;
gap:6px;
flex-direction: row;
justify-content: space-around;
}

呈現效果:

vocus|新世代的創作平台
  1. space-evenly每個小方塊之間和與父容器之間擁有相同的間隔。
.container {
padding: 10px;
background-color: yellow;
display: flex;
gap:6px;
flex-direction: row;
justify-content: space-evenly;
}

呈現效果:

vocus|新世代的創作平台
  • 這邊讀者可以將flex-direction: 設定為row-reverse ,關查一下效果。效果應該為 (主軸呈橫向,但反序排列)。
  • 對於flex-direction: column;概念相同,不過要先對父容器設定一個易於測試的高度。

好,接下來要講align-items屬性,即交叉軸的對齊方式。

在測試之前,我們稍微修改一下 CSS 的設定,讓我們更好觀察效果:

.container {
width: 300px;
height: 140px;
padding: 10px;
background-color: yellow;
display: flex;
gap:10px;
flex-direction: row;
align-items: flex-start; /* 請自行更換 */
.box {
font-weight: bold;
}
.box1 {
background-color: #FF0000;
height: 50px;
}

.box2 {
background-color: #00FF00;
height: 90px;
}

.box3 {
background-color: #00FFFF;
height: 30px;
}
  1. flex-start

呈現效果:

vocus|新世代的創作平台


  1. flex-end

呈現效果:

vocus|新世代的創作平台


  1. center

呈現效果:

vocus|新世代的創作平台
  1. baseline,對齊內容物的文字基線,請讀者個別設定每格子元素容器的行高再做測試:
.box1 {
background-color: #FF0000;
height: 50px;
line-height: 50px;
}

.box2 {
background-color: #00FF00;
height: 90px;
line-height: 30px;
}

.box3 {
background-color: #00FFFF;
height: 30px;
line-height: 40px;
}

呈現效果:

vocus|新世代的創作平台
  1. stretch,若小方塊不設定寬、高、間距,則充滿整個容器。請記得去掉小方塊個別設定的值。保留背景顏色即可。
vocus|新世代的創作平台

好,最後我們再提一個東西:inline-flex,設定成inline-flex 可以讓 Flexbox 僅佔據其內容所需的寬度,而不是拉伸整個寬度。

.container {
padding: 10px;
height: 200px;
background-color: yellow;
display: inline-flex;
}

.box {
font-weight: bold;
padding: 10px;
height: 100px;
}

.box1 {
background-color: #FF0000;
}

.box2 {
background-color: #00FF00;
}

.box3 {
background-color: #00FFFF;
}

呈現效果:

vocus|新世代的創作平台
留言
avatar-img
電資鼠 - 您的學習好夥伴
23會員
242內容數
在當今數位時代,電資領域人才需求爆發式成長,不論是前端網頁設計、嵌入式開發、人工智慧、物聯網還是軟硬體整合,這些技術都在改變世界。而掌握 C/C++、Python、數位邏輯、電路學與嵌入式開發等大學電資領域的課程,正是進入這個高薪、高需求產業的關鍵!
2025/03/03
本章節你將了解 日期物件,包括處理日期的方法以及如何設定日期格式,切入要點的示範所有常見的使用方法範例與應用。
Thumbnail
2025/03/03
本章節你將了解 日期物件,包括處理日期的方法以及如何設定日期格式,切入要點的示範所有常見的使用方法範例與應用。
Thumbnail
2025/03/03
表單驗證是一個在用戶輸入資料時確保其正確性、完整性及格式符合要求的重要功能,它可以在用戶提交表單之前進行檢查,防止錯誤資料的傳輸。本章節將帶你初步了解其原理與使用。
2025/03/03
表單驗證是一個在用戶輸入資料時確保其正確性、完整性及格式符合要求的重要功能,它可以在用戶提交表單之前進行檢查,防止錯誤資料的傳輸。本章節將帶你初步了解其原理與使用。
2025/03/03
本篇文章深入淺出地介紹 JavaScript 正規表達式,從基本語法、常用符號、方法應用到進階的捕獲群組、斷言等,並搭配豐富的範例程式碼,幫助讀者快速掌握正規表達式的使用技巧。
2025/03/03
本篇文章深入淺出地介紹 JavaScript 正規表達式,從基本語法、常用符號、方法應用到進階的捕獲群組、斷言等,並搭配豐富的範例程式碼,幫助讀者快速掌握正規表達式的使用技巧。
看更多
你可能也想看
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
在本章中,我們探討了CSS Grid佈局的基本概念和應用。CSS Grid提供了一個強大而靈活的二維佈局系統,使得處理複雜的網頁佈局變得更加簡單和直觀。我們學習了如何設置Grid容器和Grid項目,以及如何使用各種Grid屬性來定義和管理佈局。
Thumbnail
在本章中,我們探討了CSS Grid佈局的基本概念和應用。CSS Grid提供了一個強大而靈活的二維佈局系統,使得處理複雜的網頁佈局變得更加簡單和直觀。我們學習了如何設置Grid容器和Grid項目,以及如何使用各種Grid屬性來定義和管理佈局。
Thumbnail
在這一章節中,我們介紹了 Flexbox 這個 CSS 模型及其用法,重點講解了 Flex 容器和項目的各種屬性。通過具體的示例,展示了如何使用 Flexbox 進行一維佈局設計,並且通過實踐案例,展示了多行 Flex 項目和不同對齊方式的應用。
Thumbnail
在這一章節中,我們介紹了 Flexbox 這個 CSS 模型及其用法,重點講解了 Flex 容器和項目的各種屬性。通過具體的示例,展示了如何使用 Flexbox 進行一維佈局設計,並且通過實踐案例,展示了多行 Flex 項目和不同對齊方式的應用。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
這篇文章分享了 CSS Battle 第 38 題的解法,並提供了相關的技術總結。文章內容包括了使用 flex 排版處理、背景漸層的方法處理等相關技術。透過這篇文章可以學習到如何解決 CSS 切版的問題。
Thumbnail
這篇文章分享了 CSS Battle 第 38 題的解法,並提供了相關的技術總結。文章內容包括了使用 flex 排版處理、背景漸層的方法處理等相關技術。透過這篇文章可以學習到如何解決 CSS 切版的問題。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
CSS 是控制網頁外觀的語言,應用於網頁設計、UI/UX 設計、電子商務和移動應用開發。主要使用者包括前端開發者、UI/UX 設計師和網頁設計師。CSS 的特性有樣式控制、層疊優先級、響應式設計及分離內容與樣式。
Thumbnail
CSS 是控制網頁外觀的語言,應用於網頁設計、UI/UX 設計、電子商務和移動應用開發。主要使用者包括前端開發者、UI/UX 設計師和網頁設計師。CSS 的特性有樣式控制、層疊優先級、響應式設計及分離內容與樣式。
Thumbnail
浮動(float)是早期用來創建佈局的技術。元素可以向左或向右浮動,旁邊的元素會環繞浮動元素。浮動元素通常用於圖文混排或簡單的兩欄佈局。
Thumbnail
浮動(float)是早期用來創建佈局的技術。元素可以向左或向右浮動,旁邊的元素會環繞浮動元素。浮動元素通常用於圖文混排或簡單的兩欄佈局。
Thumbnail
這節課的學習目標是了解 CSS 的基本語法結構和使用方法。
Thumbnail
這節課的學習目標是了解 CSS 的基本語法結構和使用方法。
Thumbnail
本篇文章分享了前端工程師在 CSS Battle #166 的解題方式,藉由使用 flex 來進行排版,並提供了相關的技術總結。歡迎一起來學習或練習基礎切版的朋友們和作者互動。
Thumbnail
本篇文章分享了前端工程師在 CSS Battle #166 的解題方式,藉由使用 flex 來進行排版,並提供了相關的技術總結。歡迎一起來學習或練習基礎切版的朋友們和作者互動。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News