flex布局的常用方法

單行的時候文本不足會居中,多行會自動折行居左
display: flex;
flex-direction: row;
justify-content: center;
頁面高度不足時,在底部顯示;頁面高度超出時,隨頁面滾動
display: flex;
flex-direction: column;
justify-content: space-between;
flex的子元素分布比例

flex屬性的默認(rèn)值為:0 1 auto(不放大會縮小)三個參數(shù):flex-grow、flex-shrink、flex-basis
flex-grow:定義子元素的放大比例
flex-basis:定義元素的基礎(chǔ)寬度,覆蓋width
flex-shrink:定義子元素的縮小比例

一種是子元素的寬是相同的.即flex:1
三個子元素寬是不同的.即flex設(shè)置為不同的比例
有一個子元素的寬是固定的,這時flex的值可以設(shè)置為固定寬,比例,比例
<style>
        .flex {
            display: flex;
        }
        .flex div {
            height: 200px;
            background:rebeccapurple;
            margin: 10px;
            flex: 1;/* 一種是子元素的寬是相同的.即flex:1 */
        }
        .flex1 {
            display: flex;
        }
        .flex1 div {
            height: 200px;
            background: goldenrod;
            margin: 10px;
        }
        .flex1 .right,.left {
            flex: 1;/* 三個子元素寬是不同的.即flex設(shè)置為不同的比例 */
        }
        .flex1 .center {
            flex: 4;/* 三個子元素寬是不同的.即flex設(shè)置為不同的比例 */
        }
        .flex2 {
            display: flex;
        }
        .flex2 div {
            height: 200px;
            background: green;
            margin: 10px;
        }
        .flex2 .right {
            flex: 200px;/* 有一個子元素的寬是固定的,這時flex的值可以設(shè)置為固定寬,比例,比例 */
        }
        .flex2 .center {
            flex: 5;/* 有一個子元素的寬是固定的,這時flex的值可以設(shè)置為固定寬,比例,比例 */
        }
        .flex2 .left {
            flex: 1;/* 有一個子元素的寬是固定的,這時flex的值可以設(shè)置為固定寬,比例,比例 */
        }
        .font{
            color: aliceblue;
            text-align: center;
            line-height: 200px;
        }
    </style>
 <div class="flex">
        <div class="right font">一種是子元素的寬是相同的.即flex:1</div>
        <div class="center font">flex: 1;</div>
        <div class="left font">flex: 1;</div>
    </div>
    <div class="flex1">
        <div class="right font">flex: 1;</div>
        <div class="center font">flex: 4;三個子元素寬是不同的.即flex設(shè)置為不同的比例</div>
        <div class="left font">flex: 1;</div>
    </div>
    <div class="flex2">
        <div class="right font">flex: 200px;</div>
        <div class="center font">flex: 5;有一個子元素的寬是固定的,這時flex的值可以設(shè)置為固定寬,比例,比例</div>
        <div class="left font">flex: 1;</div>
    </div>
flex.png

實例html:

<title>內(nèi)容不足時頁腳在底部</title>
    <style>
            html,body{
                height: 100%;
            }
            .page{
                /* flex方法 */
                min-height: 100vh;
                display: flex;
                flex-direction: column;
                justify-content: space-between;
                /* 定位方法 */
            }
            .mian{
                background-color: blueviolet;
            }
            .liner{
                display: flex;
                flex-direction: row;
                justify-content: center;
            }
            .footer{
                width: 100%;
                background-color: green;
            }
    </style>
 <div class="page">
        <div class="mian">
            頁面內(nèi)容
            <div class="liner">
                單行文本居中,多行文本居左顯示
            </div>
        </div>
        <div class="footer">
            頁面高度不足時,在底部顯示;頁面高度超出時,隨頁面滾動footer
        </div>
    </div>
多行.png

單行.png

需要注意的是任何容器都可以指定為flex布局,但是在flex布局中float、clear、vertical-align都會失效。

主軸方向

flex容器分為x軸與y軸,x軸正方向默認(rèn)從左至右,y軸正方向默認(rèn)從上到下。
定義一個容器為彈性布局display:flex;主軸默認(rèn)方向為左到右
如果想去改變flex的默認(rèn)方向,就需要用到flex-direction屬性
flex-direction有四個屬性值,分別是row、row-reverse、column、column-reverse,分別為從左到右、從右到左、從上到下、從下到上
父元素身上的屬性:
主軸方向的對齊方式

justify-content:flex-start則主軸為左對齊
justify-content:flex-end 則主軸為右對齊
justify-content:center 則主軸為居中
justify-content:space-between則每個子項目之間等距離,前提是有剩余空間
justify-content:space-around則每個子項目會平分剩余空間,子項目與父元素邊界處也會存在距離

縱向單行對齊方式

align-item:flex-start縱向從上到下
align-item:flex-end縱向從下到上
align-item:center縱向居中對齊
align-item:baseline以基線對齊
align-item:strech這是默認(rèn)方式

子項目換行

flex-wrap:wrap超出父元素會換行
flex-wrap:wrap-reverse反向換行
flex-wrap:no wrap這是默認(rèn)方式,不換行

縱向多行對齊方式

align-content:flex-start上對齊
align-content:flex-end下對齊
align-content:center上下居中
align-content:space-between
align-content:space-around

子項目的一些屬性:

order:0,定義子項目的排序位置,數(shù)值越小越靠前,默認(rèn)為0
flex-grow:0;定義子項目的放大比例,默認(rèn)為0不放大
flex-shrink:1;定義子項目的縮小比例,默認(rèn)為1,空間不足將等比縮小,0則不縮小,負(fù)值無效
flex-basis:1;定義子項目占據(jù)空間,默認(rèn)為auto,可以設(shè)置百分比,也可以是固定值
flex:flex-grow flex-shrink flex-basis
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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