flex布局

  1. 基本概念
    采用 Flex 布局的元素,稱為 Flex 容器(flex container),簡(jiǎn)稱“容器”。它的所有子元素自動(dòng)成為容器成員,稱為 Flex 項(xiàng)目(flex item),簡(jiǎn)稱“項(xiàng)目”。容器默認(rèn)存在兩根軸,分別為水平的主軸(main axis)和垂直的交叉軸(cross axis)。主軸的開(kāi)始位置叫做 main start,結(jié)束位置叫做 main end;交叉軸的開(kāi)始位置叫做 cross start,結(jié)束位置叫做 cross end。項(xiàng)目默認(rèn)沿主軸排列。單個(gè)項(xiàng)目占據(jù)的主軸空間叫做 main size,占據(jù)的交叉軸空間叫做 cross size。如下圖所示:


    image.png
image.png
  1. 容器屬性
  1. flex-direction
    flex-direction 屬性用來(lái)決定主軸的方向(即項(xiàng)目的排列方向),屬性的可選值如下:


    image.png

<!DOCTYPE html>
<html lang="en">
<head>
<style>
#main {
border: 1px solid #CCC;
padding: 5px;
position: relative;
}
.row, .row_reverse, .column, .column_reverse{
display: flex;
margin-bottom: 5px;
}
/* 橫向 /
.row {
flex-direction: row;
}
<!DOCTYPE html>
<html lang="en">
<head>
<style>
#main {
border: 1px solid #CCC;
padding: 5px;
position: relative;
}
.row, .row_reverse, .column, .column_reverse{
display: flex;
margin-bottom: 5px;
}
/
row言橫向從左到右 /
.row {
flex-direction: row;
}
/
row-reverse 主軸沿水平方向從右到左 /
.row_reverse {
flex-direction: row-reverse;
}
/
垂直從上到下 /
.column {
flex-direction: column;
}
/
垂直從下到上 */
.column_reverse {
flex-direction: column-reverse;
position: absolute;
top: 120px;
left: 400px;
}
.row div, .row_reverse div, .column div, .column_reverse div {
width: 50px;
height: 50px;
border: 1px solid black;
}
</style>
</head>
<body>
<div id="main">
<div class="row">
<div>A</div><div>B</div><div>C</div><div>D</div><div>E</div>
</div>
<div class="row_reverse">
<div>A</div><div>B</div><div>C</div><div>D</div><div>E</div>
</div>
<div class="column">
<div>A</div><div>B</div><div>C</div><div>D</div><div>E</div>
</div>
<div class="column_reverse">
<div>A</div><div>B</div><div>C</div><div>D</div><div>E</div>
</div>
</div>
</body>
</html>
.row_reverse {
flex-direction: row-reverse;
}
.column {
flex-direction: column;
}
.column_reverse {
flex-direction: column-reverse;
position: absolute;
top: 120px;
left: 400px;
}
.row div, .row_reverse div, .column div, .column_reverse div {
width: 50px;
height: 50px;
border: 1px solid black;
}
</style>
</head>
<body>
<div id="main">
<div class="row">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div>E</div>
</div>
<div class="row_reverse">
<div>A</div><div>B</div><div>C</div><div>D</div><div>E</div>
</div>
<div class="column">
<div>A</div><div>B</div><div>C</div><div>D</div><div>E</div>
</div>
<div class="column_reverse">
<div>A</div><div>B</div><div>C</div><div>D</div><div>E</div>
</div>
</div>
</body>
</html>

  1. flex-wrap
    flex-wrap 屬性用來(lái)設(shè)置當(dāng)彈性盒子的子元素(項(xiàng)目)超出父容器時(shí)是否換行,屬性的可選值如下:

值 描述
nowrap 默認(rèn)值,表示項(xiàng)目不會(huì)換行
wrap 表示項(xiàng)目會(huì)在需要時(shí)換行
wrap-reverse 表示項(xiàng)目會(huì)在需要時(shí)換行,但會(huì)以相反的順序
initial 將此屬性設(shè)置為屬性的默認(rèn)值
inherit 從父元素繼承屬性的值


image.png
  1. flex-flow
    flex-flow 屬性是 flex-direction 和 flex-wrap 兩個(gè)屬性的簡(jiǎn)寫(xiě),語(yǔ)法格式如下:
    flex-flow: flex-direction flex-wrap;
  2. justify-content
    justify-content 屬性用于設(shè)置彈性盒子中元素在主軸(橫軸)方向上的對(duì)齊方式,屬性的可選值如下:


    image.png

    image.png
  3. align-items
    align-items 屬性用來(lái)設(shè)置彈性盒子中元素在側(cè)軸(縱軸)方向上的對(duì)齊方式,屬性的可選值如下:


    image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、介紹Flex布局 什么是Flex布局呢?Flex布局:又稱彈性布局,它是Flexible Box 的縮寫(xiě),它為...
    Clover_9fd3閱讀 1,093評(píng)論 1 4
  • flex 布局是 css3 中使用最頻繁也是最出色的功能,有點(diǎn)復(fù)雜,分為應(yīng)用在容器上的屬性和項(xiàng)目上的屬性,即父元素...
    LaBaby_閱讀 438評(píng)論 0 0
  • By Leaf 一、簡(jiǎn)單理解flex布局 首先我們來(lái)理解一下flex布局的一些基本概念(圖是我從網(wǎng)上找來(lái)的,我覺(jué)得...
    HYC_閱讀 839評(píng)論 2 5
  • display: flex; (設(shè)置成flex布局之后,子元素float就失效了,定位仍然可用。) 設(shè)置主軸方向:...
    前端yyds閱讀 898評(píng)論 0 0
  • 此文由elson發(fā)表于Elson's web 零、前言 目前在不考慮IE以及低端安卓機(jī)(4.3-)的兼容下,已經(jīng)可...
    小懶惰的豬閱讀 4,489評(píng)論 5 87

友情鏈接更多精彩內(nèi)容