CSS3 flex佈局總結
2009年,W3C 提出了新的方案----Flex 佈局,可以簡單、完整、響應式地實現各種頁面佈局。目前,它已經得到了所有瀏覽器的支援。
Flex 是 Flexible Box 的縮寫,意為"彈性佈局",用來為盒狀模型提供最大的彈性。任何一個容器都可以指定為 Flex 佈局。
( 推薦學習:CSS教學 )
行內元素也可以使用 Flex 佈局。
.box{ display: flex; } .box{ display: inline-flex; }
要注意的是Webkit 核心的瀏覽器,必須加上-webkit前綴。
.box{ display: -webkit-flex; /* Safari */ display: flex; }
此外,設為 Flex 版面配置以後,子元素的float、clear和vertical-align屬性將會失效。
flex版面常用到的6個屬性
- flex-direction
- flex-wrap
- flex-flow
- justify-content
- align-items
- align-content
##1、flex-direction
屬性決定主軸的方向(即項目的排列方向)。 <pre class='brush:php;toolbar:false;'>.box {
flex-direction: row | row-reverse | column | column-reverse;
}</pre><strong></strong>row(預設值):主軸為水平方向,起點在左端。
- column:主軸為垂直方向,起點在上沿。
column-reverse:主軸為垂直方向,起點在下緣。
-
2、
flex-wrap -
屬性定義,如果一條軸線排不下,如何換行。
.box{ flex-wrap: nowrap | wrap | wrap-reverse; }
nowrap(預設):不換行。 <strong></strong>
wrap:換行,第一行上方。
wrap-reverse
:換行,第一行在下方。
3、<strong>flex-flow</strong>
屬性是
- 屬性和
- flex-wrap 屬性的簡寫形式,預設值為
- row nowrap 。
.box { flex-flow: <flex-direction> || <flex-wrap>; }
- 4、 justify-content
- 屬性定義了專案在主軸上的對齊方式。
-content: flex-start | flex-end | center | space-between | space-
flex-start(預設值):左對齊<strong></strong>flex-end:右對齊
- ##space-between :兩端對齊,項目之間的間隔都相等。
space-around:每個項目兩側的間隔相等。所以,專案之間的間隔比專案與邊框的間隔大一倍。
-
5、
align-items - 屬性定義項目在交叉軸上如何對齊。
<pre class='brush:php;toolbar:false;'>.box { align-items: flex-start | flex-end | center | baseline | stretch; }</pre>
- flex-start
:交叉軸的起點對齊。
- flex-end
:交叉軸的終點對齊。
:交叉軸的中點對齊。 <strong></strong>baseline
: 專案的第一行文字的基線對齊。
- (預設值):如果項目未設定高度或設為auto,將佔滿整個容器的高度。
- align-content
屬性定義了多根軸線的對齊方式。如果項目只有一根軸線,則該屬性不起作用。
.box { align-content: flex-start | flex-end | center | space-between | space-around | stretch; }
:與交叉軸的起點對齊。
:與交叉軸的終點對齊。
:與交叉軸的中點對齊。
:與交叉軸兩端對齊,軸線之間的間隔平均分佈。
- space-around
:每根軸線兩側的間隔都相等。所以,軸線之間的間隔比軸線與邊框的間隔大一倍。
- stretch
(預設值):軸線佔滿整個交叉軸。
- 還有以下6個屬性設定在項目上。
- order
- flex-grow
- flex-shrink
flex#align-self
## order屬性定義項目的排列順序。數值越小,排列越前,預設為0。
<pre class='brush:php;toolbar:false;'>.item {
order: <integer>;
}</pre>
屬性定義項目的放大比例,預設為0
,即如果存在剩餘空間,也不會放大。
.item { flex-grow: <number>; /* default 0 */}
如果所有項目的flex-grow
屬性都為1,則它們將等分剩餘空間(如果有的話)。如果一個項目的flex-grow
屬性為2,其他項目都為1,則前者佔據的剩餘空間將比其他項多一倍。
.item { flex-shrink: <number>; /* default 1 */}###如果所有項目的###flex-shrink###屬性都為1,當空間不足時,都將等比例縮小。如果一個項目的###flex-shrink###屬性為0,其他項目都為1,則空間不足時,前者不縮小。 ###
flex-basis
属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto
,即项目的本来大小。
.item { flex-basis: <length> | auto; /* default auto */}
flex
属性是flex-grow
, flex-shrink
和 flex-basis
的简写,默认值为0 1 auto
。后两个属性可选。
.item { flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] }
该属性有两个快捷值:auto
(1 1 auto
) 和 none (0 0 auto
)。
align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
.item { align-self: auto | flex-start | flex-end | center | baseline | stretch; }
以上是CSS3 flex佈局總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

了解如何通過Chris Coyier實施WordPress的Gutenberg編輯器來創建一個自定義Codepen塊,並為Sanity Studio提供預覽。

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tartanify.com上,我們收集了5,000多個格子呢


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Linux新版
SublimeText3 Linux最新版

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版
中文版,非常好用

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。