CSS入門-Day7:佈局(二)

更新於 發佈於 閱讀時間約 8 分鐘

彈性盒模型(Flexbox)

Flexbox 是一種用來設計一維佈局的 CSS 模型。它可以讓我們輕鬆地排列、對齊和分配空間給容器中的項目,即使它們的大小是未知或動態的。

Flex 容器與項目

  • Flex 容器:設置 display: flexdisplay: inline-flex 的元素稱為 Flex 容器。
  • Flex 項目:Flex 容器的子元素自動成為 Flex 項目。
.container {
display: flex;
}

Flex 容器屬性

flex-direction

設置主軸(主軸方向)的方向。可以是 row(默認)、row-reversecolumncolumn-reverse

.container {
flex-direction: row;
}

justify-content

沿主軸對齊 Flex 項目。可以是 flex-startflex-endcenterspace-betweenspace-around

.container {
justify-content: center;
}

align-items

沿交叉軸對齊 Flex 項目。可以是 flex-startflex-endcenterbaselinestretch(默認)。

.container {
align-items: center;
}

flex-wrap

設置 Flex 項目是否換行。可以是 nowrap(默認)、wrapwrap-reverse

.container {
flex-wrap: wrap;
}

align-content

沿交叉軸對齊多行 Flex 項目。可以是 flex-startflex-endcenterspace-betweenspace-aroundstretch(默認)。僅在 Flex 容器內有多行時有效。

.container {
align-content: center;
}

Flex 項目屬性

order

設置 Flex 項目的排列順序,默認值為 0。數值越小,排列越靠前。

.item {
order: 1;
}

flex-grow

設置 Flex 項目的擴展比例,默認值為 0。數值越大,項目擴展越多。

.item {
flex-grow: 1;
}

flex-shrink

設置 Flex 項目的收縮比例,默認值為 1。數值越大,項目收縮越多。

.item {
flex-shrink: 1;
}

flex-basis

設置 Flex 項目的基礎大小,可以是長度值(如 px%)或 auto(默認)。

.item {
flex-basis: 100px;
}

align-self

設置單個 Flex 項目在交叉軸上的對齊方式,覆蓋 align-items 設置。可以是 auto(默認)、flex-startflex-endcenterbaselinestretch

.item {
align-self: center;
}

彈性盒模型實踐

我們將通過一個示例來實踐 Flexbox 的基本用法。

示例

<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flexbox 實踐示例</title>
<style>
.container {
display: flex;
flex-direction: row;
justify-content: space-around;
align-items: center;
height: 200px;
border: 1px solid #ccc;
}
.item {
width: 100px;
height: 100px;
background-color: lightblue;
text-align: center;
line-height: 100px;
}
</style>
</head>
<body>
<div class="container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
</div>
</body>
</html>

Flexbox 排版案例

下面是一個更複雜的 Flexbox 排版案例,展示了多行 Flex 項目、不同的對齊方式和項目屬性。

案例

<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flexbox 排版案例</title>
<style>
.container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-content: space-around;
height: 400px;
border: 1px solid #ccc;
}
.item {
width: 100px;
height: 100px;
background-color: lightcoral;
margin: 10px;
text-align: center;
line-height: 100px;
}
.item:nth-child(odd) {
background-color: lightseagreen;
}
.item-grow {
flex-grow: 1;
}
</style>
</head>
<body>
<div class="container">
<div class="item item-grow">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
<div class="item item-grow">Item 5</div>
<div class="item">Item 6</div>
</div>
</body>
</html>

這個案例展示了一個 Flex 容器,包含多個 Flex 項目,其中一些項目使用了 flex-grow 屬性來擴展佔用可用空間。通過這個實踐,你應該能夠更加靈活地使用 Flexbox 來創建各種佈局。

留言
avatar-img
留言分享你的想法!
avatar-img
Michael楊
19會員
111內容數
日後將分享關於我的經驗(日常、工作、技術),並期待未來能創造屬於我的宇宙。
Michael楊的其他內容
2024/08/08
在本章節中,我們介紹了 CSS 偽元素的基本概念和常見用法,通過一些示例,我們展示了如何使用這些偽元素來樣式化文檔中的特定部分。此外,我們還探討了一些高級用法,如創建自定義引號和實現複雜的圖形效果。這些內容應該能夠幫助你更好地理解和應用 CSS 偽元素。
Thumbnail
2024/08/08
在本章節中,我們介紹了 CSS 偽元素的基本概念和常見用法,通過一些示例,我們展示了如何使用這些偽元素來樣式化文檔中的特定部分。此外,我們還探討了一些高級用法,如創建自定義引號和實現複雜的圖形效果。這些內容應該能夠幫助你更好地理解和應用 CSS 偽元素。
Thumbnail
2024/08/08
在這一章中,我們介紹了 CSS 的過渡效果和動畫效果。過渡效果使 CSS 屬性的變化更加平滑,而動畫效果則允許我們更精細地控制元素的多個屬性隨時間變化的過程。我們通過基本語法和示例展示了如何使用這些效果,並提供了一個綜合應用的實踐案例來幫助理解。這些技術可以讓你的網頁更具互動性和動態效果。
Thumbnail
2024/08/08
在這一章中,我們介紹了 CSS 的過渡效果和動畫效果。過渡效果使 CSS 屬性的變化更加平滑,而動畫效果則允許我們更精細地控制元素的多個屬性隨時間變化的過程。我們通過基本語法和示例展示了如何使用這些效果,並提供了一個綜合應用的實踐案例來幫助理解。這些技術可以讓你的網頁更具互動性和動態效果。
Thumbnail
2024/08/07
在本章中,我們探討了CSS Grid佈局的基本概念和應用。CSS Grid提供了一個強大而靈活的二維佈局系統,使得處理複雜的網頁佈局變得更加簡單和直觀。我們學習了如何設置Grid容器和Grid項目,以及如何使用各種Grid屬性來定義和管理佈局。
Thumbnail
2024/08/07
在本章中,我們探討了CSS Grid佈局的基本概念和應用。CSS Grid提供了一個強大而靈活的二維佈局系統,使得處理複雜的網頁佈局變得更加簡單和直觀。我們學習了如何設置Grid容器和Grid項目,以及如何使用各種Grid屬性來定義和管理佈局。
Thumbnail
看更多
你可能也想看
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
浮動(float)是早期用來創建佈局的技術。元素可以向左或向右浮動,旁邊的元素會環繞浮動元素。浮動元素通常用於圖文混排或簡單的兩欄佈局。
Thumbnail
浮動(float)是早期用來創建佈局的技術。元素可以向左或向右浮動,旁邊的元素會環繞浮動元素。浮動元素通常用於圖文混排或簡單的兩欄佈局。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
在這篇教學中,我們會介紹Renpy框框 (Box)的各種造型特性,包括水平框 (hbox)、垂直框 (vbox) 和固定框 (fixed),以及常見特性如spacing、box_reverse和box_wrap。透過這份教學,您將能更瞭解Renpy框框的運作原理和應用,進一步提升Renpy的應用能力
Thumbnail
在這篇教學中,我們會介紹Renpy框框 (Box)的各種造型特性,包括水平框 (hbox)、垂直框 (vbox) 和固定框 (fixed),以及常見特性如spacing、box_reverse和box_wrap。透過這份教學,您將能更瞭解Renpy框框的運作原理和應用,進一步提升Renpy的應用能力
Thumbnail
這節課的學習目標是了解 CSS 的基本語法結構和使用方法。
Thumbnail
這節課的學習目標是了解 CSS 的基本語法結構和使用方法。
Thumbnail
CSS 是控制網頁外觀的語言,應用於網頁設計、UI/UX 設計、電子商務和移動應用開發。主要使用者包括前端開發者、UI/UX 設計師和網頁設計師。CSS 的特性有樣式控制、層疊優先級、響應式設計及分離內容與樣式。
Thumbnail
CSS 是控制網頁外觀的語言,應用於網頁設計、UI/UX 設計、電子商務和移動應用開發。主要使用者包括前端開發者、UI/UX 設計師和網頁設計師。CSS 的特性有樣式控制、層疊優先級、響應式設計及分離內容與樣式。
Thumbnail
本篇習作內容進入到 CSS 排版實作,一起瞭解 Flexbox,開始第一個網頁排版吧 💪🏻!
Thumbnail
本篇習作內容進入到 CSS 排版實作,一起瞭解 Flexbox,開始第一個網頁排版吧 💪🏻!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News