html
<div class="wrapper">
<div>1111111111111111111111</div>
<div>2222222222222222222222</div>
<div>3333333333333333333333</div>
<div>4444444444444444444444</div>
</div>
</div>
css
.wrapper{
width: 100%;
height: 100px;
display: flex;
display: -webkit-flex;
background-color: antiquewhite;
/*flex-direction: column-reverse;*/
/*flex-wrap: wrap-reverse;*/
/*flex-flow: row wrap;*/
/*主轴对齐方式flex-start | flex-end | center | space-between | space-around*/
justify-content:center;
/*交叉轴对齐方式flex-start | flex-end | center | baseline | stretch*/
align-items:center ;
/*多根轴线的对齐方式flex-start | flex-end | center | space-between | space-around | stretch*/
align-content: center;
color: black;
}
.wrapper div{
/*order属性定义项目的排列顺序,数值越小,排列越靠前,默认为0*/
order: 1;
/*flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。*/
flex-grow:0;
/*flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。*/
flex-shrink: 1;
/*flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size),它的默认值为auto*/
flex-basis: auto;
/*flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。*/
flex:0 1 auto;
}
.wrapper div:nth-child(4){
order: 0;
/*align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。auto | flex-start | flex-end | center | baseline | stretch;*/
align-self: auto;
}
实现垂直居中:
1.不知道自己高度和父容器高度的情况下, 利用绝对定位只需要以下三行:
parentElement{
position:relative;
}
childElement{
position: absolute;
top: 50%;
transform: translateY(-50%);
}
2.若父容器下只有一个元素,且父元素设置了高度,则只需要使用相对定位即可
parentElement{
height:xxx;
}
.childElement {
position: relative;
top: 50%;
transform: translateY(-50%);
}
3.Flex 布局:
parentElement{
display:flex;/*Flex布局*/
display: -webkit-flex; /* Safari */
align-items:center;/*指定垂直居中*/
justify-content:center;/*指定水平居中*/
}