首頁 web前端 js教程 flex佈局詳解

flex佈局詳解

Mar 13, 2018 pm 06:04 PM
flex 佈局 詳解

這次帶給大家flex佈局詳解,flex佈局詳解的注意事項有哪些,以下就是實戰案例,一起來看一下。

垂直居中是一種常見的頁面佈局方式,對於行內元素可以設定text-align:center;vertical-align:center實現,
而對於區塊級元素通常可以透過以下設定實現

.parent{    position: relative;
}.child{    position: absolute;    top: 50%;    left: 50%;    transform: translate(-50%,-50%);
}
登入後複製

然而為了css的簡單優雅,除inline、inline-block、block佈局外,css第四種佈局方式flex應運而生
只需以下設定就可以輕鬆實現元素垂直居中

.parent{    display: flex;    justify-content: center;    align-items: center;
}
登入後複製

注意:設為flex佈局,子元素的float、clear和vertical-align屬性將失效

基本概念

採用flex佈局的元素,稱為flex容器。元素內所有的子元素稱為flex項目。
容器預設存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)。
主軸的起始位置(與邊框的交叉點)叫做main start,結束位置叫做main end;交叉軸的起始位置叫做cross start,結束位置叫做cross end。
專案預設沿著主軸排列,單一專案佔據的主軸空間叫做main size,佔據的交叉軸空間叫做cross size。

flex容器的屬性

flex-direction
flex-wrap
flex-flow
justify-content
align-items
align-content
flex-direction
登入後複製

flex-direction屬性決定主軸的方向。

row(預設值):主軸為水平方向,起點在左端

row-reverse:主軸為水平方向,起點在右端

column:主軸為垂直方向,起點在上方沿

column-reverse:主軸為垂直方向,起點在下沿

flex-wrap

預設情況下,項目都排在主軸線上, flex-wrap屬性定義設定如果一行主軸線排不下,如何換行。

nowrap(預設值):,不換行

wrap :換行,第一行在上邊

wrap-reverse:換行,第一行在下邊

flex-flow

flex-flow屬性是flex-direction屬性和flex-wrap屬性的簡寫形式,
預設值為row nowrap。

justify-content

justify-content屬性定義了項目(自元素)在主軸上的對齊方式。

flex-start(預設值):左對齊

flex-end:右對齊

center: 居中

space-between:兩端對齊,項目之間的間隔都相等。

space-around:每個項目兩側的間隔相等。所以,專案之間的間隔比專案與邊框的間隔大一倍。

align-items

align-items屬性定義項目在交叉軸上如何對齊。

stretch(預設值):如果項目未設定高度或設為auto,將佔滿整個容器的高度。

flex-start:交叉軸的起點對齊。

flex-end:交叉軸的終點對齊。

center:交叉軸的中點對齊。

baseline: 專案的第一行文字的基線對齊。

align-content

align-content屬性定義了多根軸線的對齊方式。如果項目只有一根軸線,則該屬性不起作用。

stretch(預設值):軸線佔滿整個交叉軸。

flex-start:與交叉軸的起點對齊。

flex-end:與交叉軸的終點對齊。

center:與交叉軸的中點對齊。

space-between:與交叉軸兩端對齊,軸線之間的間隔平均分佈。

space-around:每根軸線兩側的間隔都相等。所以,軸線之間的間隔比軸線與邊框的間隔大一倍。

flex項目(自元素)屬性

order
flex-grow
flex-shrink
flex-basis
flex
align-self
order
登入後複製

order屬性定義項目的排列順序。數值越小,排列越前,預設為0。

flex-grow

flex-grow屬性定義項目的放大比例,預設為0,即如果存在剩餘空間,也不放大。
如果所有項目的flex-grow屬性都為1,則它們將等分剩餘空間。
如果一個項目的flex-grow屬性為2,其他項目都是1,則前者佔據的剩餘空間將比其他項多一倍。

flex-shrink

flex-shrink屬性定義了項目的縮小比例,預設為1,即如果空間不足,該項目將縮小。
如果所有項目的flex-shrink屬性都是1,當空間不足時,都會等比例縮小。
如果一個項目的flex-shrink屬性為0,其他項目都是1,則空間不足時,前者不縮小。
負值對該屬性無效。

flex-basis

flex-basis屬性定義了在分配多餘空間之前,專案佔據的主軸空間(main size)。
瀏覽器根據這個屬性,計算主軸是否有多餘空間。它的預設值為auto,即項目的本來大小。
它可以設為跟width或height屬性一樣的值(例如350px),則項目將佔據固定空間。

flex

flex屬性是flex-grow, flex-shrink 和 flex-basis的簡寫,預設值:0 1 auto。後兩個屬性可選。
此屬性有兩個快速值:auto (1 1 auto) 和 none (0 0 auto)。

align-self

align-self屬性允許單一項目有與其他項目不一樣的對齊方式,可覆寫align-items屬性。
預設值:auto,表示繼承父元素的align-items屬性,如果沒有父元素,則等同於stretch。
此屬性可能取6個值,除了auto,其他都與align-items屬性完全一致。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

Javascript的觀察者模式

Javascript的代理模式

Javascript的策略模式

以上是flex佈局詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Win11管理員權限取得詳解 Win11管理員權限取得詳解 Mar 08, 2024 pm 03:06 PM

Windows作業系統是全球最受歡迎的作業系統之一,其新版本Win11備受矚目。在Win11系統中,管理員權限的取得是一個重要的操作,管理員權限可以讓使用者對系統進行更多的操作和設定。本文將詳細介紹在Win11系統中如何取得管理員權限,以及如何有效地管理權限。在Win11系統中,管理員權限分為本機管理員和網域管理員兩種。本機管理員是指具有對本機電腦的完全管理權限

Oracle SQL中的除法運算詳解 Oracle SQL中的除法運算詳解 Mar 10, 2024 am 09:51 AM

OracleSQL中的除法運算詳解在OracleSQL中,除法運算是一種常見且重要的數學運算運算,用來計算兩個數相除的結果。除法在資料庫查詢中經常用到,因此了解OracleSQL中的除法運算及其用法是資料庫開發人員必備的技能之一。本文將詳細討論OracleSQL中除法運算的相關知識,並提供具體的程式碼範例供讀者參考。一、OracleSQL中的除法運算

WordPress網頁錯位現象解決攻略 WordPress網頁錯位現象解決攻略 Mar 05, 2024 pm 01:12 PM

WordPress網頁錯位現象解決攻略在WordPress網站開發中,有時候我們會遇到網頁元素錯位的情況,這可能是由於不同裝置上的螢幕尺寸、瀏覽器相容性或CSS樣式設定不當所致。要解決這種錯位現象,我們需要仔細分析問題、找出可能的原因,並逐步進行除錯和修復。本文將分享一些常見的WordPress網頁錯位問題以及對應的解決攻略,同時提供具體的程式碼範例,幫助開

linux系統呼叫system()函數詳解 linux系統呼叫system()函數詳解 Feb 22, 2024 pm 08:21 PM

Linux系統呼叫system()函數詳解系統呼叫是Linux作業系統中非常重要的一部分,它提供了一種與系統核心互動的方式。其中,system()函數是常用的系統呼叫函數之一。本文將詳細介紹system()函數的使用方法,並提供對應的程式碼範例。系統呼叫的基本概念系統呼叫是使用者程式與作業系統核心互動的一種方式。使用者程式透過呼叫系統呼叫函數來請求作業系統

PHP模運算子的作用及用法詳解 PHP模運算子的作用及用法詳解 Mar 19, 2024 pm 04:33 PM

PHP中的模運算子(%)是用來取得兩個數值相除的餘數的。在本文中,我們將詳細討論模運算子的作用及用法,並提供具體的程式碼範例來幫助讀者更好地理解。 1.模運算子的作用在數學中,當我們將一個整數除以另一個整數時,就會得到一個商和一個餘數。例如,當我們將10除以3時,商數為3,餘數為1。模運算子就是用來取得這個餘數的。 2.模運算子的用法在PHP中,使用%符號來表示模

Linux的curl指令詳解 Linux的curl指令詳解 Feb 21, 2024 pm 10:33 PM

Linux的curl命令詳解摘要:curl是一種強大的命令列工具,用於與伺服器進行資料通訊。本文將介紹curl指令的基本用法,並提供實際的程式碼範例,幫助讀者更好地理解和應用該指令。一、curl是什麼? curl是命令列工具,用於發送和接收各種網路請求。它支援多種協議,如HTTP、FTP、TELNET等,並提供了豐富的功能,如檔案上傳、檔案下載、資料傳輸、代

深入了解Promise.resolve() 深入了解Promise.resolve() Feb 18, 2024 pm 07:13 PM

Promise.resolve()詳解,需要具體程式碼範例Promise是JavaScript中一種用來處理非同步操作的機制。在實際開發中,常常需要處理一些需要依序執行的非同步任務,而Promise.resolve()方法就是用來傳回一個已經Fulfilled狀態的Promise物件。 Promise.resolve()是Promise類別的靜態方法,它接受一個

介紹win7裡的視窗排列方式 介紹win7裡的視窗排列方式 Dec 26, 2023 pm 04:37 PM

當我們同時開啟多個視窗時,win7具有將多個視窗以不同方式排列然後同時顯示的功能,能夠讓我們更清晰地查看到每個視窗的內容。那麼win7窗口排列方式有幾種呢,他們分別都是什麼樣的呢,下面就跟著小編一起來看一下吧。 win7視窗排列方式有幾種答案:三種,分別是層疊視窗、堆疊顯示視窗和並排顯示視窗。當我們開啟多個視窗時,可以右鍵點擊任務欄空白處。就可以看到三種視窗排列方式了。一、層疊視窗:二、堆疊顯示視窗:三、並排顯示視窗:

See all articles