1. 程式人生 > 其它 >display:flex和三列布局

display:flex和三列布局

技術標籤:前端面試

flex 彈性盒子
在父元素上設定display:flex
彈性改變父元素中的子元素
預設情況下:有一條水平的主軸,所有子元素按照主軸方向排列,在主軸方向沒有寬度,在側軸方向寬度填滿。主軸方向元素變多時,自動擠壓

父元素屬性

flex-direction表示主軸方向:

1.row表示主軸水平方向排列,從左到右,側軸垂直從上到下
row-reverse表示主軸水平,從右到左排列
2.column表示主軸垂直方向排列,從上到下
column-reverse表示主軸垂直方向排列,從下到上

justify-content表示主軸方向元素排列方式

flex-start:從開始位置排列

flex-end:從主軸結束位置排列
center:所有元素居中排列
space-between :所有空白填充在子元素之間,左右兩個元素頂格
space-around:空白壞繞
space-evenly:表示均分所有的空白元素

aline-items表示側軸的排列方式

flex-start:從開始位置排列
flex-end:從側軸結束位置排列
center:所有元素居中排列

flex-wrap表示是否開啟換行

no-wrap表示不允許換行
wrap表示可以換行(側軸不會擠壓元素,超出去就溢位)

aline-content表示側軸的排列方式(整體側軸)

前提:開啟換行,有多行元素時
flex-start:從開始位置排列

flex-end:從側軸結束位置排列
center:所有元素居中排列
space-between :所有空白填充在子元素之間,左右兩個元素頂格
space-around:空白壞繞
space-evenly:表示均分所有的空白元素

彈性子集上的屬性

aline-self表示自己單獨一個元素的側軸排列方式

start 表示自己單獨在側軸的起始位置
end 表示自己單獨在側軸的結束位置
center 表示自己單獨居中

flex:設定彈性寬度

比如:設定幾個flex的和為20,其中一個flex為5,則該元素佔5/20的寬度
擠壓寬度的時候優先擠壓彈性寬度元素,當彈性寬度不能擠壓的時候,擠壓定寬元素

order設定優先順序

三列布局

左右固定,中間自適應

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        *{
            margin:0px;
            padding:0px;
            }
        html,body{
            width:100%;
            height:100%;
            overflow:hidden;
            }
        body{display:flex;}
        div.left{
        background:skyblue;
        width:200px;
        height:200px;
        }
        div.center{
        background:orange;
        height:200px;
        flex:5;
        }
        div.right{
        background:pink;
        height:200px;
        flex:5;
        }
    </style>
</head>
<body>
    <div class="left"></div>
    <div class="center"></div>
    <div class="right"></div>
    
</body>
</html>