• 當前位置: 首頁 / 廈門建站(zhàn)百科(kē) / 廈門網站(zhàn)建設
  • Flex布局實戰

    時間(jiān):2022-12-28 浏覽量: 收藏

    1. 父項屬性

    flex-direction:設置主軸的方向

    justify-content:設置主軸上的子元素排列方式

    flex-wrap:設置子元素是(shì)否換行(xíng)

    align-content:設置側軸上的子元素排列方式(多(duō)行(xíng))

    align-items:設置側宙上的子元素排列方式(單行(xíng))

    flex-flow: 複核屬性,相(xiàng)當于同時設置了flex-direction和flex-wrap

    1.1 flex-direction 設置主軸的方向

    flex-direction屬性決定主軸的方向(即項目的排列方向)

    注意:主軸和側軸是(shì)會(huì)變化(huà)的,就(jiù)看flex-direction設置誰爲主軸,剩下的就(jiù)是(shì)側軸。而我們的 子元素都是(shì)跟着主軸來(lái)排列的

    屬性值說明

    row:默認從(cóng)左到右

    row-reverse:從(cóng)右到左

    column:從(cóng)上到下

    column:從(cóng)下到上

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title></title>
    		<style>
    		div{
    			width: 800px;
    			height: 300px;
    			background-color: pink;
    			display: flex ;
    			/* 默認的按照(zhào)行(xíng)排列的,元素是(shì)按照(zhào)主軸排列的 */
    			/* flex-direction: row; */
    			/* flex-direction: row-reverse; */
    			flex-direction: column;
    		}
    		div span{
    			width: 200px;
    			height: 200px;
    			background-color: green;
    		}
    		</style>
    	</head>
    	<body>
    		<div>
    			<span>1</span>
    			<span>2</span>
    			<span>3</span>
    		</div>
    	</body>
    </html>

    1.2 justify-content設置主軸上的子元素排列方式

    justify-content屬性定義了項目在主軸上的對齊方式

    注意:使用這(zhè)個屬性之前一定要(yào)确定好主軸是(shì)那個

    屬性值說明

    flex-start:默認值從(cóng)頭部開(kāi)始,如果主軸是(shì)x軸,則從(cóng)左到右

    flex-end:從(cóng)尾部開(kāi)始排列

    center:在主軸居中對齊(如果主軸是(shì)x軸則水(shuǐ)平居中)

    space-around:平分(fēn)剩餘空間(jiān)

    space-between:先兩邊貼邊 再平分(fēn)剩餘空間(jiān)(重要(yào))

    1.2.1 flex-start(默認)

    Flex布局實戰(圖1)

    1.2.2 flex-end

    Flex布局實戰(圖2)

    1.2.3 center

    Flex布局實戰(圖3)

    1.2.4 space-around

    Flex布局實戰(圖4)

    1.2.5 space-between

    Flex布局實戰(圖5)

    <style>
    div{
        width: 800px;
        height: 300px;
        background-color: pink;
        display: flex ;
        /* 默認沿着主軸從(cóng)左到右排列 */
        justify-content: flex-start;
        /* 如果主軸是(shì)x,則從(cóng)右到左排列 */
        justify-content: flex-end;
        /* 居中排列 */
        justify-content: center;
        /* 平分(fēn)剩餘空間(jiān) */
        justify-content: space-around;
        /* 先兩邊貼邊再平分(fēn)剩餘空間(jiān) */
        justify-content: space-between;
    
    }
    div span{
        width: 200px;
        height: 200px;
        background-color: green;
    }
    </style>

    1.3 flex-wrap設置元素是(shì)否換行(xíng)

    flex默認讓子元素在一行(xíng)顯示,項目都排在一條線上(又稱“軸線”),如果裝不(bù)開(kāi)會(huì)縮小(xiǎo)子元素的寬度。

    屬性值說明

    nowrap:默認值,不(bù)換行(xíng)

    wrap:換行(xíng)

    Flex布局實戰(圖6)

    設置flex-wrap:wrap之後

    Flex布局實戰(圖7)

    1.4 align-items設置側軸上的子元素排列方式(單行(xíng))

    該屬性是(shì)控制(zhì)子項在側軸(默認是(shì)y軸)上的排列方式,在子項爲單項的時候使用

    屬性值說明

    flex-start:默認值 從(cóng)上到下

    flex-end:從(cóng)下到上

    center:擠在一起居中(垂直居中)

    streth:拉伸

    1.4.1 flex-start(默認)

    Flex布局實戰(圖8)

    1.4.2 flex-end

    從(cóng)下到上

    Flex布局實戰(圖9)

    1.4.3 center

    垂直居中

    Flex布局實戰(圖10)

    1.4.4 streth

    去掉height

    Flex布局實戰(圖11)

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title></title>
    		<style>
    			div{
    				width: 800px;
    				height: 400px;
    				background-color: pink;
    				display: flex ;
    				justify-content: center;
    				align-items: flex-start;
    				align-items: flex-end;
    				align-items: center;
    				align-items: stretch;
    			}
    			div span{
    				width: 150px;
    				height: 100px;
    				background-color: green;
    				margin: 10px;
    			}
    		</style>
    	</head>
    	<body>
    		<div>
    			<span>1</span>
    			<span>2</span>
    			<span>3</span>
    		</div>
    	</body>
    </html>

    1.5 align-content設置側軸上的子元素的排列方式(多(duō)行(xíng))

    設置子項在側軸上的排列方式并且隻能用于子項出現(xiàn)換行(xíng)的情況(多(duō)行(xíng)),單行(xíng)的情況下是(shì)無效的

    屬性值說明

    flex-start:默認值在側軸的頭部開(kāi)始排列

    flex-end:在側軸的尾部開(kāi)始排列

    center:在側軸中間(jiān)顯示

    space-around:子項在側軸平分(fēn)剩餘空間(jiān)

    space-between:子項在側軸先分(fēn)布在兩頭,再平分(fēn)剩餘空間(jiān)

    stretch:設置子項元素高(gāo)度平分(fēn)父元素高(gāo)度

    1.5.1 flex-start(默認)

    Flex布局實戰(圖12)

    1.5.2 flex-end

    在側軸的尾部開(kāi)始排列

    Flex布局實戰(圖13)

    1.5.3 center

    Flex布局實戰(圖14)

    1.5.4 space-around

    Flex布局實戰(圖15)

    1.5.5 space-between

    Flex布局實戰(圖16)

    1.5.6 stretch

    去掉子元素的hight

    Flex布局實戰(圖17)

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title></title>
    		<style>
    			div{
    				width: 800px;
    				height: 400px;
    				background-color: pink;
    				display: flex;
    				flex-wrap: wrap;
    				align-content: flex-start;
    				align-content: flex-end;
    				align-content: center;
    				align-content: space-around;
    				align-content: space-between;
    				align-content: stretch;
    			}
    			div span{
    				width: 150px;
    				background-color: green;
    				margin: 10px;
    			}
    		</style>
    	</head>
    	<body>
    		<div>
    			<span>1</span>
    			<span>2</span>
    			<span>3</span>
    			<span>4</span>
    			<span>5</span>
    			<span>6</span>
    		</div>
    	</body>
    </html>

    1.6 align-content和align-items的區别

    align-items 适用于單行(xíng)情況下,隻有上對齊、下對其、居中和拉伸

    align-content 适用于換行(xíng)(多(duō)行(xíng))的情況下(單行(xíng)情況下無效),可(kě)以設置上對齊、下對齊、居中、拉伸以及平均分(fēn)配剩餘空間(jiān)等屬性值

    總結就(jiù)是(shì)單行(xíng)找align-items多(duō)行(xíng)找align-content

    1.7 flex-flow

    flex-flow屬性是(shì)flex-direction和flex-wrap的複核屬性

    Flex布局實戰(圖18)

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title></title>
    		<style>
    			div{
    				width: 800px;
    				height: 400px;
    				background-color: pink;
    				display: flex;
    				/* flex-direction: column; */
    				/* flex-wrap: wrap; */
    				flex-flow: column wrap;
    				
    			}
    			div span{
    				width: 150px;
    				height: 100px;
    				background-color: green;
    				margin: 10px;
    			}
    		</style>
    	</head>
    	<body>
    		<div>
    			<span>1</span>
    			<span>2</span>
    			<span>3</span>
    			<span>4</span>
    			<span>5</span>
    			<span>6</span>
    		</div>
    	</body>
    </html>

    2. 子項屬性

    flex 子項目占的份數

    align-self 控制(zhì)子項自(zì)己在側軸的排列方式

    order 屬性定義子項的排列順序(前後順序)

    2.1 flex 屬性

    flex屬性定義子項目分(fēn)配剩餘空間(jiān),用flex來(lái)表示占多(duō)少份數。默認爲0

    例子1: 兩端固定,中間(jiān)自(zì)适應布局

    Flex布局實戰(圖19)

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title></title>
    		<style>
    			section{
    				display: flex;
    				margin: 0 auto;
    				width: 800px;
    				height: 150px;
    				background-color: pink;
    			}
    			section div:nth-child(1){
    				width: 100px;
    				height: 150px;
    				background-color: red;
    			}
    			section div:nth-child(3){
    				width: 100px;
    				height: 150px;
    				background-color: blue;
    			}
    			section div:nth-child(2){
    				width: 100px;
    				height: 150px;
    				flex: 1;
    				background-color: green;
    			}
    		</style>
    	</head>
    	<body>
    		<section>
    			<div>1</div>
    			<div>2</div>
    			<div>3</div>
    		</section>
    	</body>
    </html>

    例子2:等分(fēn)份數

    Flex布局實戰(圖20)

    <style>
    section{
    display: flex;
    margin: 0 auto;
    width: 800px;
    height: 150px;
    background-color: pink;
    }
    section div:nth-child(1){
    width: 100px;
    height: 150px;
    flex: 1;
    background-color: red;
    }
    section div:nth-child(3){
    width: 100px;
    height: 150px;
    flex: 1;
    background-color: blue;
    }
    section div:nth-child(2){
    width: 100px;
    height: 150px;
    flex: 1;
    background-color: green;
    }
    </style>

    2.2 align-self控制(zhì)子項自(zì)己在側軸上的排列方式

    align-self屬性允許單個項目有與其他項目不(bù)一樣的對齊方式,可(kě)覆蓋align-items屬性。默認值爲auto,表示可(kě)以繼承父元素的align-items屬性,如果沒有父元素,則等同于stretch。

    Flex布局實戰(圖21)

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title></title>
    		<style>
    			section{
    				display: flex;
    				margin: 0 auto;
    				width: 800px;
    				height: 450px;
    				background-color: pink;
    			}
    			section div:nth-child(1){
    				width: 150px;
    				height: 150px;
    				background-color: red;
    			}
    			section div:nth-child(3){
    				width: 150px;
    				height: 150px;
    				align-self: flex-end;
    				background-color: blue;
    			}
    			section div:nth-child(2){
    				width: 150px;
    				height: 150px;
    				background-color: green;
    			}
    		</style>
    	</head>
    	<body>
    		<section>
    			<div>1</div>
    			<div>2</div>
    			<div>3</div>
    		</section>
    	</body>
    </html>

    2.3 order屬性定義項目的排列順序

    數值越小(xiǎo),排列越靠前,默認爲0

    注意:和z-index不(bù)一樣

    Flex布局實戰(圖22)

    section div:nth-child(1){
        width: 150px;
        height: 150px;
        background-color: red;
    }
    section div:nth-child(3){
        width: 150px;
        height: 150px;
        order: -1;
        background-color: blue;
    }
    section div:nth-child(2){
        width: 150px;
        height: 150px;
        background-color: green;
    }


    flex實戰    Flex布局    

    頂一下
    (0)
    0.00%
    踩一下
    0
    0.00%
    加載中~

    相(xiàng)關推薦

    RELATED RECOMMEND

    Copyright © 2012-2024 世敏網絡 版權所有   京ICP證000000号    閩公網安備 35020502000640号        關鍵詞聚合

    世敏網絡

    您已成功複制(zhì)微(wēi)信号,去微(wēi)信立即添加好友!

    打開(kāi)微(wēi)信

    Wechart

    點擊下方複制(zhì)按鈕,複制(zhì)微(wēi)信号!

    jzm866081

    https://www.xmsmwl.cn
    廈門漳州市曙光網絡服務有限公司

    點擊這(zhè)裡(lǐ)聯系在線客服
    嘿!有什麽能幫到您的嗎(ma)?