Flex彈性布局一文詳解

2021-10-05 09:07:58 字數 4007 閱讀 8830

flex彈性布局是w3c在2023年提出的新的布局方式,內含的大量的屬性,使其可以方便,有效,高適配,響應式的進行頁面布局。是目前前端開發的一種重要的布局。

一、簡介

flex布局是對容器設定的一種布局方式。通過對容器進行display: flex;實現修改容器為flex彈性布局。再通過一系列屬性設定,達到對容器內的元素進行控制。

二、容器(父元素)的屬性

flex-direction

justify-content

align-items

flex-wrap

flex-flow

align-content

1. flex-direction

flex布局中存在主軸和副軸的概念,flex-direction就是設定主軸方向的屬性。設定完主軸方向,另乙個方向即為副軸。有以下4個值

flex-direction: row | row-reverse | column | column-reverse;

2. justify-contentjustify-content是設定元素在主軸方向上的位置。有以下5個值

(例子採用預設主軸方向是水平,左到右)

justify-content: flex-start | flex-end | center | space-between | space-around;

3. align-itemsalign-items是設定元素在副軸方向上的位置。有以下5個值

(例子採用預設副軸方向上到下)

align-items: flex-start | flex-end | center | stretch | baseline;

4. flex-wrapflex-wrap是設定換行的屬性,有以下3個值(例子的父元素高寬都為40px,子元素高20px,寬10px)

flex-wrap: nowrap | wrap | wrap-reverse;

5. flex-flowflex-flow是flex-direction和flex-wrap的簡寫形式,預設值為row nowrap

flex-flow: flex-direction flex-wrap;

6. align-contentalign-content定義了多根軸線的對齊方式。如果專案只有一根軸線,該屬性不起作用,有以下6個值

align-content: flex-start | flex-end | center | space-between | space-around | stretch;

三、子元素屬性由於對父元素設定的屬性是對於所有子元素來說的,要是單獨的對其中的某個子元素進行操作,還需要對子元素設定對應的屬性,子元素的屬性有以下6種

order

flex-grow

flex-shrink

flex-basis

flex

align-self

1. order

order屬性可以在不破壞html文件的結構前提下改變子元素的順序。order:數字;的方式使用,數字越小越靠前,預設都為0。

.father

.son

.son:nth-child(1)

.son:nth-child(2)

.son:nth-child(3)

使紫色盒子到最前邊,只需給紫色盒子設定order:-1;

2. flex-growflex-grow可以設定子元素的放大比例,預設為0,即有剩餘空間也不放大。

若將右邊的剩餘空間都分配給粉色子元素,只需給粉色子元素設定flex-grow:1;

若將右邊的剩餘空間都分配給粉色子元素1份和藍色子元素2份

.son:nth-child(1)

.son:nth-child(2)

.son:nth-child(3)

3. flex-shrinkflex-shrink屬性是設定子元素的縮小比例,預設為1。

若元素太多超出父元素的大小,則所有元素等比例縮小

若不想讓第乙個粉色縮小,只需給第乙個粉色設定flex-shrink: 0;剩餘的其他子元素還是等比例縮放

4. flex-basisflex-basis屬性是設定在分配多餘空間之前,子元素提前佔據的主軸空間大小。預設值為auto,即子元素本身的大小,也可以手動設定數值(多少px),這個屬性一般很少用到,了解就可以。

5. flex

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

** 6. align-self**

align-self屬性設定子元素在副軸方向上的位置,有以下6個值,預設是auto,但是用的最多的就是center。

align-self: auto | flex-start | flex-end | center | baseline | stretch;

.father

.son

.son:nth-child(1)

.son:nth-child(2)

.son:nth-child(3)

若讓紫色盒子自己在副軸方向上居中,只需

以上就是flex彈性布局的屬性的作用,作為頁面布局的重要方式之一,他的響應性和適配性是很重要的因素,也是我們必須掌握的一種布局方式。

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...

Flex布局 彈性布局

1.flex direction flex direction屬性決定主軸的方向 即專案的排列方向 flex direction row row reverse column column reverse 2.flex wrap 預設情況下,專案都排在一條線 又稱 軸線 上。flex wrap屬性定...