Flex布局属性详解 左对齐 右对齐
flex布局利用修改父元素display:flex实现
1 、 flex-direction属性
取值:row(默认)|| row-reverse || column || column-reverse
解释:row为横向排列,顺序为1-2-3. row-reverse为横向排列,但顺序为3-2-1. column为纵向排列,顺序为1-2-3. column-reverse为纵向排列,但顺序为3-2-1
<style>
* {
margin: 0;
padding: 0;
}
.main {
width: 900px;
height: 100px;
display: flex;
flex-direction: column-reverse;
}
.box1,
.box2,
.box3 {
width: 300px;
height: 100px;
text-align: center;
}
</style>
<body>
<div class="main">
<div class="box1" style="background-color: red">1</div>
<div class="box2" style="background-color: green">2</div>
<div class="box3" style="background-color: blue">3</div>
</div>
</body>2、 flex-wrap属性
取值:nowrap(默认) || wrap || wrap-reverse
解释:nowrap表示不换行,wrap表示换行,wrap-reverse表示换行,第一排紧紧贴在容器底部。
3、 justify-content属性
取值:flex-start(默认)|| flex-end || center || space-between || space-around
解释:表示横轴对齐方式:flex-start表示左对齐,flex-end为右对齐,center居中对齐,space-between表示左右两端对齐,space-around为项目之间间距为左右两侧项目到容器间距的2倍
3、 align-items属性
取值:flex-start || flex-end || center || baseline || stretch(默认)
解释:表示纵轴排列方式:stretch表示不设置高度,占满整个屏幕。flex-start表示纵轴紧贴容器顶部。center表示在纵轴中心排列。flex-end表示紧贴容器底部。baseline表示以第一行文字的基线为参照
4、 align-content属性
表示多行项目的对齐方式,和align-item一样
5、 一行固定个数,超出换行(流式布局)
.father{
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
}
.child{
/* 方法一 */
flex: 1;
height: 50px;
margin: 0 5px 5px 0;
background-color: #999;
width: calc((100% - 10px) / 3);// 这里的10px = (分布个数3-1)*间隙5px, 可以根据实际的分布个数和间隙区调整
min-width: calc((100% - 10px) / 3);// 加入min-width、max-width后每个child的宽度就生效了
max-width: calc((100% - 10px) / 3);
/* 方法二 */
/*
height: 50px;
margin: 0 5px 5px 0;
box-sizing: border-box;
background-color: #999;
flex: 0 0 calc((100% - 10px) / 3);
*/
}
.child:nth-child(3n){
margin-right: 0;// 去除第3n个的margin-right
}


