認識CSS flex

更新 發佈閱讀 13 分鐘

我們現在常見的flex的語法有這些

display:flex //(注意:這裡如果沒設成flex,底下語法都無法使用喔!!!)

flex-wrap

flex-direction

flex-flow //(可以同時設定flex-direction和flex-wrap)

justify-content

align-item

align-content

align-self

order

flex (flex-grow、flex-shrink、flex-basis)

第一個:display:

還沒加入flex之前的樣式會是像圖片這樣,呈現縱向

raw-image

程式碼如下:

<!doctype html>

<html lang="en-US">

<head>

    <meta charset="utf-8" />

    <meta name="viewport" content="width=device-width" />

    <link href="test.css" rel="stylesheet" />

</head>

<body>

    <div class="ttp">

        <div class="test">I am jojo</div>

        <div class="test1">1</div>

        <div class="test2">2</div>

        <div class="test3">3</div>

        <div class="test4">4</div>

        <div class="test5">5</div>

    </div>

</body>

</html>
.ttp{

    height: 300px;

    margin: 30px;

}

.test{

    margin-top: 10px;

    margin-left: 20px;

    margin-right: 20px;

    margin-bottom: 10px;

    border: 6px solid red;

}

.test1{

    border:6px solid black;

    margin-left: 20px;

    margin-right: 20px;

}

.test2{

    border: 6px solid brown;

    margin-left: 20px;

    margin-right: 20px;

    margin-top: 10px;

}

.test3{

    border: 6px solid rgb(59, 119, 164);

    margin-left: 20px;

    margin-right: 20px;

    margin-top: 10px;

}

.test4{

    border: 6px solid rgb(143, 59, 164);

    margin-left: 20px;

    margin-right: 20px;

    margin-top: 10px;

}

.test5{

    border: 6px solid rgb(59, 164, 64);

    margin-left: 20px;

    margin-right: 20px;

    margin-top: 10px;

}

那接下來是加入flex之後的樣式

程式碼:

<!doctype html>

<html lang="en-US">

<head>

    <meta charset="utf-8" />

    <meta name="viewport" content="width=device-width" />

    <link href="test.css" rel="stylesheet" />

</head>

<body>

    <div class="ttp">

        <div class="test">I am jojo</div>

        <div class="test1">1</div>

        <div class="test2">2</div>

        <div class="test3">3</div>

        <div class="test4">4</div>

        <div class="test5">5</div>

    </div>

</body>

</html>
.ttp{

    height: 300px;

    margin: 30px;

    display: flex;

}

.test{

    margin-top: 10px;

    margin-left: 20px;

    margin-right: 20px;

    margin-bottom: 10px;

    border: 6px solid red;

}

.test1{

    border:6px solid black;

    margin-left: 20px;

    margin-right: 20px;

}

.test2{

    border: 6px solid brown;

    margin-left: 20px;

    margin-right: 20px;

    margin-top: 10px;

}

.test3{

    border: 6px solid rgb(59, 119, 164);

    margin-left: 20px;

    margin-right: 20px;

    margin-top: 10px;

}

.test4{

    border: 6px solid rgb(143, 59, 164);

    margin-left: 20px;

    margin-right: 20px;

    margin-top: 10px;

}

.test5{

    border: 6px solid rgb(59, 164, 64);

    margin-left: 20px;

    margin-right: 20px;

    margin-top: 10px;

}

加入之後的樣式會像圖下這樣:

raw-image

但我們加入flex之後文字就會變成橫向的








第二個:flex-wrap

我們用flex之後,會發現牠們會擠在同一列,所以我們可以加入flex-wrap,flex-wrap是用來告訴flex是否可以進行換行:

flex-wrap的程式碼如下:

nowrap  //預設

wrap //(換行)

wrap-reverse //(換行,且行順序反轉)

第三個:flex-direction

flex-direction決定的是內元件的「排列方向」

flex-direction的程式碼如下:

row //(預設值,由左至右,從上到下)

row-reverse //(排列方向和row一樣,但內元件順序會反轉)

column //(先從上到下,再由左至右)

column-reverse //(排列方向和column一樣,但內元件順序會反轉)

第四個:flex-flow

flex-flow是flex-directionflex-wrap的縮寫,它可以接受兩個屬性的值,沒有前後順序之分,中間用空格隔開即可

程式碼:

.ttp{

    height: 300px;

    margin: 30px;

    display: flex;

    flex-direction: column;

    flex-wrap: wrap;

}

可以寫成:

.ttp{

    height: 300px;

    margin: 30px;

    display: flex;

    flex-flow:column wrap;

}



第五個:justify-content

justify-content是用來控制flex「水平對齊」的位置,也就是主軸方向。

程式碼如下:

flex-start  //(預設值)會從主軸的起點開始排

flex-end //主軸的「終點」開始排

Center //排在「起點」和「終點」的中間

Space-around //平均分配「元素」位置,但左右兩側的間距會較小

Space-between //平均分配「元素」位置,但左右兩側會貼齊主軸的起點、終點

Space-evenly //元素」和「左右兩側」的間距皆相同

第五個:align-item

和jusitfy-content的用法類似,但它是用來控制「垂直對齊」的位置,也就是交錯軸方向

程式碼如下:

Stretch //(預設值,要測試請記得內元素不能設定height)

flex-start //從交錯軸的「起點」開始排

flex-end //從交錯軸的「終點」開始排

center //讓所有元素在「交叉軸」中間對齊

baseline //讓所有元素的文字基線(baseline)對齊

第六個:align-content

align-content是用來控制flex的「行」在「水平方向」的對齊位置,但是如果想要使用align-content的話,一定要設flex-wrap:wrap,因為它是控制「行」

程式碼如下:

stretch //為預設值,將美行拉伸已填滿剩餘空間

flex-start //從交錯軸的「起點」開始排

flex-end //從交錯軸的「終點」開始排

center //排在「起點」和「終點」的中間

space-around //是平均分配「行」的位置,但上下兩側的間距會較小

space-between //是平均分配「行」的位置,但上下兩側會貼齊交錯軸的起點、終點

space-evenly //是「元素」和「上下兩側」的間距皆相同

第七個:align-self

align-self和align-item的功能一樣,但它是針對「單一」對象

程式碼如下:

Stretch //(預設值,要測試請記得內元素不能設定height)

flex-start //會從交錯軸的「起點」開始排

flex-end //會從交錯軸的「終點」開始排

center //這會讓該元素在「交叉軸」的方向上單獨置中。

baseline //會讓元素對齊「文字的底線位置」

第八個:order

order預設值為0,它可以重新定義內元件的排列順序,順序會依照數值的大小排列



第九個:Flex (flex-grow、flex-shrink、flex-basis)

所謂的flex就是flex-grow、flex-shink、flex-basis的縮寫

flex-grow:空間有剩時,這個元素要「放大多少比例」去吃掉多餘空間。


flex-shink:空間不夠時,這個元素要「縮小多少比例」來配合容器。


flex-basis:主軸方向上的「初始大小」。

留言
avatar-img
睿哲楊的沙龍
2會員
17內容數
睿哲楊的沙龍的其他內容
2025/11/26
首先我們先聊聊margin&padding的差異之前,我們先可以先聊聊元素的外框 HTML裡的一個元素外面都有所謂的外框,依次分為margin、border、padding。而他們各自述職的位置對應不同的外邊界(ex:margin "方向分為上、右、下、左") 我們先聊聊margin,所謂的
Thumbnail
2025/11/26
首先我們先聊聊margin&padding的差異之前,我們先可以先聊聊元素的外框 HTML裡的一個元素外面都有所謂的外框,依次分為margin、border、padding。而他們各自述職的位置對應不同的外邊界(ex:margin "方向分為上、右、下、左") 我們先聊聊margin,所謂的
Thumbnail
2025/11/24
首先需要先購建構環境,那我們要先去安裝nvm。 至於nvm是什麼,nvm全名"Node Version Manager",是一款專門用來管理node.js版本的工具,他可以協助你安裝、切換、管理不同版本的Node.js 安裝nvm: 接著開啟終端機,按照下列步驟做: (也可直接搜尋pow
2025/11/24
首先需要先購建構環境,那我們要先去安裝nvm。 至於nvm是什麼,nvm全名"Node Version Manager",是一款專門用來管理node.js版本的工具,他可以協助你安裝、切換、管理不同版本的Node.js 安裝nvm: 接著開啟終端機,按照下列步驟做: (也可直接搜尋pow
2025/11/24
這次我們要來了解CSS 選擇棄權重 & 關係選擇器 CSS 選擇棄權重是指不同 CSS 選擇器之間,哪一條規則會優先生效 的「重要性分數」。 就是當多個CSS規則同時套用到同一個元素時,決定哪一個樣式「比較強」。 像是CSS: p { color: blue; } .text
Thumbnail
2025/11/24
這次我們要來了解CSS 選擇棄權重 & 關係選擇器 CSS 選擇棄權重是指不同 CSS 選擇器之間,哪一條規則會優先生效 的「重要性分數」。 就是當多個CSS規則同時套用到同一個元素時,決定哪一個樣式「比較強」。 像是CSS: p { color: blue; } .text
Thumbnail
看更多
你可能也想看
Thumbnail
對於害怕風險、擔心賠錢的投資新手,本文介紹債券投資的優勢,說明其風險相對可控、能定期領息的特性,並介紹玉山「小額債」如何以低門檻(1,000美元/澳幣起)提供投資者參與海外債市的機會,強調其低波動、固定收益的友善特點,適合有明確時間目標的資金規劃。
Thumbnail
對於害怕風險、擔心賠錢的投資新手,本文介紹債券投資的優勢,說明其風險相對可控、能定期領息的特性,並介紹玉山「小額債」如何以低門檻(1,000美元/澳幣起)提供投資者參與海外債市的機會,強調其低波動、固定收益的友善特點,適合有明確時間目標的資金規劃。
Thumbnail
本文深入探討債券投資的本質、常見迷思、風險控制方法,並詳細介紹玉山證券「小額債」平臺的特色與優勢,包括低門檻、24hr即時報價、精準篩選等,幫助投資人建立理性、有紀律的債券投資策略,打造穩定的現金流,讓金錢成為財務上的助力。
Thumbnail
本文深入探討債券投資的本質、常見迷思、風險控制方法,並詳細介紹玉山證券「小額債」平臺的特色與優勢,包括低門檻、24hr即時報價、精準篩選等,幫助投資人建立理性、有紀律的債券投資策略,打造穩定的現金流,讓金錢成為財務上的助力。
Thumbnail
自由工作者收入不穩定,適合選擇穩健的小額債做資產配置。玉山證券小額債最低一千美金就能開始,支援 24 小時委託下單與即時報價,並提供多條件篩選找到適合的債券。本文分享我的操作體驗與為何小額債能成為自由工作者的安心配置。
Thumbnail
自由工作者收入不穩定,適合選擇穩健的小額債做資產配置。玉山證券小額債最低一千美金就能開始,支援 24 小時委託下單與即時報價,並提供多條件篩選找到適合的債券。本文分享我的操作體驗與為何小額債能成為自由工作者的安心配置。
Thumbnail
為什麼「小額債券」會成為越來越多人關注的選項? 如果你跟我一樣,經歷過股市大漲的甜、也嚐過劇烈修正的苦, 大概就會慢慢明白一件事—— 投資,不只是追求報酬,更是關於「穩定感」。 很多投資新手一開始進市場,很容易把全部資金都丟進股票, 漲的時候很快樂,跌的時候卻發現自己根本睡不好。 這
Thumbnail
為什麼「小額債券」會成為越來越多人關注的選項? 如果你跟我一樣,經歷過股市大漲的甜、也嚐過劇烈修正的苦, 大概就會慢慢明白一件事—— 投資,不只是追求報酬,更是關於「穩定感」。 很多投資新手一開始進市場,很容易把全部資金都丟進股票, 漲的時候很快樂,跌的時候卻發現自己根本睡不好。 這
Thumbnail
認識網頁的三大構造 在這個資訊爆炸的時代,網頁已經成為我們每天必須接觸的存在。不論是查資料、追劇,還是購物、社交,我們無時無刻都在和「網頁」互動。但你有沒有想過,一個網頁是如何被建構出來的呢? 其實,網頁的世界主要由三大基礎組成: HTML、CSS、JavaScript。它們就像是蓋房子的「
Thumbnail
認識網頁的三大構造 在這個資訊爆炸的時代,網頁已經成為我們每天必須接觸的存在。不論是查資料、追劇,還是購物、社交,我們無時無刻都在和「網頁」互動。但你有沒有想過,一個網頁是如何被建構出來的呢? 其實,網頁的世界主要由三大基礎組成: HTML、CSS、JavaScript。它們就像是蓋房子的「
Thumbnail
你是否在撰寫 CSS 時曾遇過寫了 Class name 卻沒有效果的詭異情況? 現在讓我們玩個小賭局吧(註1),猜猜看下方 HTML 搭配兩組 Class 樣式後,最終文字的顏色為何?猜錯的話,如果呈現為藍色,就請你的另一半去吃和牛 47,反之如果是紅色就請他 / 她吃 12mini 吧。
Thumbnail
你是否在撰寫 CSS 時曾遇過寫了 Class name 卻沒有效果的詭異情況? 現在讓我們玩個小賭局吧(註1),猜猜看下方 HTML 搭配兩組 Class 樣式後,最終文字的顏色為何?猜錯的話,如果呈現為藍色,就請你的另一半去吃和牛 47,反之如果是紅色就請他 / 她吃 12mini 吧。
Thumbnail
CSS 的繼承性是開發網頁樣式時的一個重要概念,它使得樣式設計更加靈活和高效,有助於提高程式碼的可讀性、一致性和可重用性,並加快開發速度,從而提供更好的開發體驗。
Thumbnail
CSS 的繼承性是開發網頁樣式時的一個重要概念,它使得樣式設計更加靈活和高效,有助於提高程式碼的可讀性、一致性和可重用性,並加快開發速度,從而提供更好的開發體驗。
Thumbnail
本篇是Tailwind CSS系列文章的第一篇,就用輕鬆的閒聊方式來認識一下Tailwind CSS,讓你知道它的魅力所在。Tailwind CSS是一種「Utility-First」的CSS設計模式,提供非常多預先定義好的class給開發者使用,直接加在HTML上就能直接使用,協助開發者更快的開發
Thumbnail
本篇是Tailwind CSS系列文章的第一篇,就用輕鬆的閒聊方式來認識一下Tailwind CSS,讓你知道它的魅力所在。Tailwind CSS是一種「Utility-First」的CSS設計模式,提供非常多預先定義好的class給開發者使用,直接加在HTML上就能直接使用,協助開發者更快的開發
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News