flex彈性布局學習

2022-05-04 10:54:05 字數 3769 閱讀 8679

一、介紹

flex( flexible box:彈性布局盒模型),是2023年w3c提出的一種可以簡潔、快速彈性布局的屬性。主要思想是給予容器控制內部元素高度和寬度的能力。目前已得到以下瀏覽器支援:

二、了解兩個基本概念:

容器:需要新增彈性布局的父元素;

專案:彈性布局容器中的每乙個子元素,稱為專案;

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

專案預設沿主軸排列。單個專案佔據的主軸空間叫做main size,佔據的交叉軸空間叫做cross size

三、容器屬性詳述

1.flex-direction

flex-direction屬性決定主軸的方向(即專案的排列方向)。

row:主軸為水平方向,專案沿主軸從左至右排列

column:主軸為豎直方向,專案沿主軸從上至下排列

row-reverse:主軸水平,專案從右至左排列,與row反向

column-reverse:主軸豎直,專案從下至上排列,與column反向

flex-wrap:定義,如果一條軸線排不下,如何換行。

nowrap:自動縮小專案,不換行

wrap:換行,且第一行在上方

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

3、flex-flow

flex-direction屬性和flex-wrap屬性的縮寫形式,預設值為row nowrap

4、justify-content

決定item在主軸上的對齊方式,可能的值有flex-start(預設),flex-end,center,space-between,space-around。當主軸沿水平方向時,具體含義為

flex-start:左對齊

flex-end:右對齊

center:居中對齊

space- between:兩端對齊

space-around:沿軸線均勻分布

5、align-items

align-items屬性:定義專案在交叉軸上的排列方式

flex-start:頂端對齊

flex-end:底部對齊

center:豎直方向上居中對齊

baseline:item第一行文字的底部對齊

stretch:當item未設定高度時,item將和容器等高對齊

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

flex-start:左對齊

flex-end:右對齊

center:居中對齊

space- between:兩端對齊

space-around:沿軸線均勻分布

stretch:各行將根據其flex-grow值伸展以充分佔據剩餘空間

效果圖如下

四、作用於專案上的屬性

1、order

order的值是整數,預設為0,整數越小,排列越靠前,如下圖所示**如下

定義了當flex容器有多餘空間時,item是否放大。預設值為0,即當有多餘空間時也不放大;可能的值為整數,表示不同item的放大比例,如

<

div

class

="wrap"

>

<

div

class

="div"

style

="flex-grow:1"

>1

div>

<

div

class

="div"

style

="flex-grow:2"

>2

div>

<

div

class

="div"

style

="flex-grow:3"

>3

div>

div>

即當有多餘空間時item1、item2、和item3以1:2:3的比例放大。

3、flex-shrink

flex-shrink屬性 定義了專案的縮小比例,預設為1,即如果空間不足,該專案將縮小

flex-basis屬性 定義專案佔據的主軸空間。(設定後如果主軸為水平,則設定的這個屬性,相當於設定專案的寬度。原width會失效)

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

這個屬性有兩個快捷設定: auto=(1 1 auto)/none=(0 0 auto)

align-self屬性 :定義單個專案自身在交叉軸上的排列方式,可以覆蓋掉讓其上的align-items屬性

屬性值:與align-items相同,預設值為auto,表示繼承父容器的align-items屬性。

Flex布局(彈性布局)學習筆記

相關的css屬性 flex flow是felx direction和flex wrap的縮寫屬性 flex direction 決定主軸的方向 1.row 主軸方向從左到右 預設值 2.row reverse 主軸方向從右到左 3.column 主軸方向從上到下 4.column reverse 主...

flex布局(彈性布局)

flex是flexible box的縮寫,意為 彈性布局 用來為盒狀模型提供最大的靈活性。任何乙個容器都可以指定為flex布局。box行內元素也可以使用flex布局。boxwebkit核心的瀏覽器,必須加上 webkit字首。box注意,設為flex布局以後,子元素的float clear和vert...

Flex布局(彈性布局)

flex是flex box的縮寫,即彈性布局。任何乙個容器都可以指定為flex布局。行內元素也可以使用flex布局。webkit核心的瀏覽器,必須加上 webkit字首。box.box.box注意 設為flex布局以後,子元素的float clear和vertical align屬性將失效。採用fl...