進入我的主頁,查看更多CSS的分享!
首先呢,先去看文檔,了解flex是什麼,這裡不做贅述。
當然,可以看下面的代碼示例,輔助你理解。
一、row
將子元素在水平方向進行布局:
1. 垂直方向靠頂部,水平方向靠左側
.row-ll { display: flex;/* 定義flex */ flex-direction: row;/* 默認值*/ align-items: flex-start;/* 默認值*/ justify-content: flex-start;/* 默認值*/}示例:
<div style="width: 660px; height: 230px; border: 1px solid red;"> <div style="width: 110px; height: 110px;">我是div</div> <img src="" alt="" style="width: 110px; height: 110px;" /> <span>text</span></div>
2. 垂直方向靠頂部,水平方向居中
.row-lc { display: flex; flex-direction: row; align-items: flex-start; justify-content: center;}
3.垂直方向靠頂部,水平方向兩端對齊
.row-lsb { display: flex; flex-direction: row; align-items: flex-start; justify-content: space-between;}
4. 垂直方向靠頂部,水平方向平均分隔(中間間隔的寬度為兩邊間隔寬度的2倍)
.row-lsa { display: flex; flex-direction: row; align-items: flex-start; justify-content: space-around;}
5. 垂直方向靠頂部,水平方向平均分隔(間隔距離相等)
.row-lse { display: flex; flex-direction: row; align-items: flex-start; justify-content: space-evenly;}
6. 垂直方向靠頂部,水平方向靠右側
.row-le { display: flex; flex-direction: row; align-items: flex-start; justify-content: flex-end;}
7. 垂直方向可以設置為:靠頂部、居中、靠底部
前面6個是(垂直方向)靠頂部的效果,且(垂直方向)居中、靠底部的代碼類似,如下:
/* 垂直方向居中,水平方向靠左側 */.row-cl { display: flex; flex-direction: row; align-items: cenetr; justify-content: flex-start;}/* 垂直方向居中,水平方向居中 */.row-cc { display: flex; flex-direction: row; align-items: cenetr; justify-content: cenetr;}/* 垂直方向居中,水平方向平均間隔(中間間隔的寬度為兩邊間隔寬度的2倍) */.row-csa { display: flex; flex-direction: row; align-items: cenetr; justify-content: space-around;}/* 垂直方向居中,水平方向兩端對齊 */.row-csb { display: flex; flex-direction: row; align-items: cenetr; justify-content: space-between;}/* 垂直方向居中,水平方向平均間隔(間隔距離相等) */.row-cse { display: flex; flex-direction: row; align-items: cenetr; justify-content: space-evenly;}/* 垂直方向居中,水平方向靠右側 */.row-ce { display: flex; flex-direction: row; align-items: cenetr; justify-content: flex-end;}/* 垂直方向居底部,水平方向靠左側 */.row-el { display: flex; flex-direction: row; align-items: flex-end; justify-content: flex-start;}/* 垂直方向居底部,水平方向居中 */.row-ec { display: flex; flex-direction: row; align-items: flex-end; justify-content: cenetr;}/* 垂直方向居底部,水平方向平均間隔 */.row-esa { display: flex; flex-direction: row; align-items: flex-end; justify-content: space-around;}/* 垂直方向居底部,水平方向兩端對齊 */.row-esb { display: flex; flex-direction: row; align-items: flex-end; justify-content: space-between;}/* 垂直方向居底部,水平方向平均間隔 */.row-ese { display: flex; flex-direction: row; align-items: flex-end; justify-content: space-evenly;}/* 垂直方向居底部,水平方向靠右側 */.row-ee { display: flex; flex-direction: row; align-items: flex-end; justify-content: flex-end;}二、column
將子元素在垂直方向進行布局:
1. 垂直方向靠頂部,水平方向靠左側
.col-ll { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start;}2. 垂直方向靠居中,水平方向靠左側
.col-lc { display: flex; flex-direction: column; align-items: flex-start; justify-content: center;}3. 垂直方向兩端對齊,水平方向靠左側
.col-lsb { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between;}4. 垂直方向平均間隔(中間間隔的寬度為兩邊間隔寬度的2倍),水平方向靠左側
.col-lsa { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-around;}5. 垂直方向平均間隔(間隔距離相等),水平方向靠左側
.col-lse { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-evenly;}6. 垂直方向靠底部,水平方向靠左側
.col-le { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end;}7. 水平方向可以設置為:靠頂部、居中、靠底部
前面6個是(水平方向)靠頂部的效果,且(水平方向)居中、靠底部的代碼類似,如下:
/* 垂直方向靠頂部,水平方向居中 */.col-cl { display: flex; flex-direction: column; align-items: center; justify-content: flex-start;}/* 垂直方向居中,水平方向居中 */.col-cc { display: flex; flex-direction: column; align-items: center; justify-content: center;}/* 垂直方向平均間隔,水平方向居中 */.col-csa { display: flex; flex-direction: column; align-items: center; justify-content: space-around;}/* 垂直方向兩端對齊,水平方向居中 */.col-csb { display: flex; flex-direction: column; align-items: center; justify-content: space-between;}/* 垂直方向平均間隔,水平方向居中 */.col-cse { display: flex; flex-direction: column; align-items: center; justify-content: space-evenly;}/* 垂直方向靠底部,水平方向居中 */.col-ce { display: flex; flex-direction: column; align-items: center; justify-content: flex-end;}/* 垂直方向靠頂部,水平方向靠底部 */.col-cl { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-start;}/* 垂直方向居中,水平方向靠底部 */.col-cc { display: flex; flex-direction: column; align-items: flex-end; justify-content: center;}/* 垂直方向平均間隔,水平方向靠底部 */.col-csa { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-around;}/* 垂直方向兩端對齊,水平方向靠底部 */.col-csb { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between;}/* 垂直方向平均間隔,水平方向靠底部 */.col-cse { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-evenly;}/* 垂直方向靠底部,水平方向靠底部 */.col-ce { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end;}三、更多屬性
菜鳥教程(https://www.runoob.com/css3/css3-flexbox.html)
四、代碼太多了也有重複,好亂啊
我參考了vuetify的預置css,flex.css可以這麼寫:
.d-flex { display: flex;}.flex-row { flex-direction: row;}.flex-wrap { flex-wrap: wrap;}.flex-wrap-reverse { flex-wrap: wrap-reverse;}.flex-row-reverse { flex-direction: row-reverse;}.flex-column { flex-direction: column;}.flex-column-reverse { flex-direction: column-reverse;}.align-start { align-items: flex-start;}.align-center { align-items: center;}.align-end { align-items: flex-end;}.justify-start { justify-content: flex-start;}.justify-center { justify-content: center;}.justify-space-around { justify-content: space-around;}.justify-space-between { justify-content: space-between;}.justify-space-evenly { justify-content: space-evenly;}示例:
<link rel="stylesheet" href="./flex.css" /><div> 垂直居中,水平居中</div><div> 垂直居中,水平兩端對齊</div>有補充請在評論區留言。