Flex 布局筆記-布局應(yīng)用

最近在學(xué)習(xí)flex-box的布局,也發(fā)現(xiàn)這個(gè)布局挺好用,在整個(gè)頁面的響應(yīng)式布局方面挺方便。不過在實(shí)踐過程的時(shí)候,在幾個(gè)屬性上面總是有那么點(diǎn)惡心。下面整理了3個(gè)布局。



1, Flex布局第一種運(yùn)用,響應(yīng)式柵格化布局




Html代碼

<div class="demo-wrap">
 <div class="demo">
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
    <div class="item"></div>
   <div class="item"></div>
   </div>
</div>

css代碼

.demo-wrap{
 border: 2px solid #ddd;
 background: #f5f5f5;
 padding: 6px;
}
 
.demo{
 width: 100%;
 
 /*flex布局(作用于容器)*/
 display: flex;
 
 /*兩端對齊(作用于容器)*/
 justify-content: space-around;
 
 /*側(cè)軸方向?qū)R方式(作用于容器)*/
 align-items: flex-end;
 
 /*換行(作用于容器)*/
 flex-wrap: wrap;
}
 
.demo .item{
 width: 300px;
 height: 50px;
 background: #444;
 margin-bottom: 20px;
}

核心就是最大父容器讓寬度auto,item父容器100%的設(shè)置,再用上一個(gè)換行wrap,就能輕松實(shí)現(xiàn)響應(yīng)式布局

2,左右固定中間自適應(yīng)寬度底部對齊布局


html代碼

<div class="demo">
  <div class="left">左邊固定寬度為100px,這里設(shè)置了高度為auto</div>
  <div class="center">中間寬度自適應(yīng),并且左中右兩個(gè)區(qū)域是等高的,這里設(shè)置了高度為200px</div>
  <div class="right">右邊固定寬度為150px,這里設(shè)置了高度為auto</div>
</div>

css代碼

.demo{
 /*flex布局(作用于容器)*/
 display: flex;
 
 /*項(xiàng)目拉伸對齊,也就是所左邊的高度為拉伸到和右邊底部對齊*/
 align-items: flex-end;
}
 
.demo .left{
 /*左邊固定寬度,必須設(shè)置其最小寬度和最大寬度*/
 width: 100px;
 min-width: 100px;
 max-width: 100px;
 
 /*高度自由分配*/
 height: auto;
 background: #B4D3F7;
 
 /*空白區(qū)域分配比例為0(作用于項(xiàng)目)*/
 flex-grow: 0;
}
 
.demo .center{
 margin: 0 10px;
 width: auto;
 height: 200px;
 background: #F7E8B4;
 
 /*空白區(qū)域分配比例為1(作用于項(xiàng)目)
 左右得到的空白比例為0:1,所以右邊會(huì)分配到剩余的所有空白區(qū)域,
 左邊成固定的寬度,右邊為自適應(yīng)寬度*/
 flex-grow: 1;
}
 
.demo .right{
 /*右邊固定寬度,必須設(shè)置其最小寬度和最大寬度*/
 width: 150px;
 min-width: 150px;
 max-width: 150px;
 
 /*高度自由分配*/
 height: auto;
 background: #CBFFD2;
 
 /*空白區(qū)域分配比例為0(作用于項(xiàng)目)*/
 flex-grow: 0;
}

這是一種類似于圣杯的簡易布局效果。視覺效果保證的核心的有max-width作保證。布局的核心是兩側(cè)固定width并且flex-grow為0,中間auto并且flex-grow為1

3,懸掛式布局

html代碼

<div class="Media"> 
  <img class="Media-figure" src="" alt=""> 
  <p class="Media-body">...</p>
</div>

css代碼

.Media { display: flex; align-items: flex-start;}
.Media-figure { margin-right: 1em;}
.Media-body { flex: 1;}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,796評論 1 92
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    wzhiq896閱讀 1,803評論 0 2
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,335評論 0 11
  • 移動(dòng)開發(fā)基本知識點(diǎn) 一.使用rem作為單位 html { font-size: 100px; } @media(m...
    橫沖直撞666閱讀 3,514評論 0 6
  • 我沒有一個(gè)許多文章里所說的那個(gè),能夠教授你人生經(jīng)驗(yàn)的父親。 我父親是個(gè)粗人,在家里負(fù)責(zé)賺錢,常常和我說有什么心事和...
    目木醬閱讀 341評論 0 0