CSS3 flex彈性布局

2022-08-29 18:45:12 字數 3511 閱讀 5732

css3的flex布局用法

任何乙個容器都可以指定為flex布局;

行內元素也可以使用flex布局。

.box

webkit核心的瀏覽器,必須加上-webkit字首

.box

設為flex布局後,子元素的float、clear、和vertical-align屬性將失效。

基本概念:

採用css3 flex布局的元素,稱為flex容器,它的所有子元素自動稱為容器成員,稱為(flex item)

容器預設存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)。主軸的開始位置(與邊框的交叉點)叫main start,結束位置叫做 main end;交叉抽的開始位置叫做cross start,結束位置叫做cross end;

容器的6個屬性:

flex-directio:

決定主軸的方向(即專案排列的方向)

用法:.box

row:預設值 水平從左向右  row-reverse:水平從右向左  column:豎直從上往下  column-reverse:豎直從下往上

flex-wrap:

預設情況下專案都排在一條(軸線)線上,flex-warp屬性定義,如果一條軸線排不下,如何換行。

用法:.box

nowrap:預設不換行  wrap:換行,第一行在上  wrap -reverse:換行,第一行在下方

flex-flow:

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

用法.box

justify-content:

定義了專案在主軸的對齊方式

用法:.box

flex-start:左對齊 flex-end:右對齊 center:居中 space-between:兩端對齊,專案之間的間隔都相等  space-around: 每個專案兩側的間隔相等,所以,專案之間的間隔比專案與邊框的間隔大一倍

align-items:

定義專案在交叉上如何對齊

用法: . box

它可能取5個值,具體的對齊方式與交叉軸的方向有關,下面假設交叉軸從上到下

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

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

center:交叉軸中點對齊

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

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

align-content

定義了多根軸線的對齊方式。如果專案只有一根軸線,該屬性不起作用。

用法:.box

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

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

center:與交叉軸中點對齊

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

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

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

專案的6個屬性:

order:

定義專案的排列順序,數值越小,排列越靠前,預設為0

用法: . item

flex-grow

定義專案的放大比例,預設為0,如果存在剩餘空間,也不放大

用法 :.item

flex-shrink

定義了專案的縮小比例,預設為1,即如果控制項不足,該專案將縮小

用法:.item

flex-basis

定義了在分配多餘控制項之前,專案佔據的主軸控制項(main size).瀏覽器根據這個屬性,計算主軸是否有多餘控制項,它的預設值是auto,即專案的本來大小.

用法:.item

它可以設為跟width或height屬性一樣的值(比如350px),則專案將佔據固定控制項

flex

屬性是flex-grow,flex-shrink和flex-basis的簡寫,預設值為 0 1 auto;後兩個屬性可選

用法: . item

該屬性有兩個快捷值: auto(1 1 auto)和none(0 0 auto)

建議優先使用這個屬性,而不是單獨寫三個分離的屬性,因為瀏覽器會推算相關值

align-self:

允許單個專案與其他專案不一樣的對齊方式,可覆蓋align-items屬性,預設值是auto,表示繼承父類元素的align-items屬性,如果沒有父元素,則等同於stretch。

用法 :.item

doctype html

>

<

html

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>flex box

title

>

<

style

>

.flex-container

.flex-item

.flex-item1

.flex-item3

.flex-item4

.flex-item5

.flex-item6

.flex-item:hover

style

>

head

>

<

body

>

<

div

class

="flex-container"

>

<

div

class

="flex-item flex-item1"

>flex item 1

div>

<

div

class

="flex-item flex-item2"

>flex item 2

div>

<

div

class

="flex-item flex-item3"

>flex item 3

div>

<

div

class

="flex-item flex-item4"

>flex item 4

div>

<

div

class

="flex-item flex-item5"

>flex item 5

div>

<

div

class

="flex-item flex-item6"

>flex item 6

div>

div>

body

>

html

>

CSS3 flex 彈性布局

為盒子模型提供最大的靈活性 基本概念 設定了 flex 布局的元素稱為 flex container 容器 所有子元素稱為 flex ite 專案 容器屬性 flex wrap 換行 預設情況下專案都排在一條線上,如果超出容器,則減少專案寬度,該屬性定義如何換行 flex flow 是 flex d...

CSS3 flex彈性布局之flex屬性

flex 大致分為兩類屬性 容器屬性和專案屬性 容器內部專案的屬性 flex 屬性 flex 1 如就給容器內部專案設定的屬性。這裡的 wrap 指容器,item 我們稱作專案。我們還需要知道flex屬性是flex grow,flex shrink和flex basis的簡寫,預設值為0 1 aut...

CSS3 Flex 彈性模型布局用法

檢視 css某個屬性,相容情況 css3 flex布局 盒子模型 box sizing border box 預設 content box 平時普通盒子模型,padding,border,盒子會變大,向外擴充套件 border box 盒子模型,padding,border,盒子模型不變大,向內擴充...