1 flex容器的六个属性
flex实现垂直居中:
<div class="box"> <span class="item"></span> </div> .box { display: flex; justify-content: center; align-items: center; }
1 flex-direction .box { flex-direction: row | row-reverse | column | column-reverse; } 2 flex-wrap 不换行,换行,换行且第一行在下方 .box{ flex-wrap: nowrap | wrap | wrap-reverse; } 3 flex-flow 前两项属性简写,默认 row nowrap .box { flex-flow: <flex-direction> || <flex-wrap>; } 4 justify-content:主轴位置,左对齐,右对齐,居中,两端对齐,项目两侧距离相等 .box { justify-content: flex-start | flex-end | center | space-between | space-around; } 5 align-itemsY轴对齐:上,下,居中,基线,占满 .box { align-items: flex-start | flex-end | center | baseline | stretch; } 6 align-content 带基线对齐 .box { align-content: flex-start | flex-end | center | space-between | space-around | stretch; }
2 Flex元素属性
1 Flex元素的属性 1 flex:flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto .item { flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] } /* 两个快捷值:auto (1 1 auto) 和 none (0 0 auto) */ 2 order属性,默认0,填写可设置元素顺序 3 align-self .item { align-self: auto | flex-start | flex-end | center | baseline | stretch; } 允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch
http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool
http://www.ruanyifeng.com/blog/2015/07/flex-examples.html
3 Grid布局,将页面表示为栅格
CSS Grid 没有替换 flexbox 属性,尽可能保留了它的功能,可以在 Grid中使用justify-content和align-items等属性
<div class='wrapper'> <div class='letter'> 1 </div> <div class='letter'> 2 </div> <div class='letter'> 3 </div> <div class='letter'> 4 </div> </div> .wrapper { display: grid; grid-template-columns: 1fr 1fr; @media screen and (min- 500px) { grid-template-columns: 1fr 1fr 1fr; } /*当宽大于800px时显示为四列*/ @media screen and (min- 800px) { grid-template-columns: 1fr 1fr 1fr 1fr; } } /**/ .wrapper { display: grid; grid-template-columns: 3fr 1fr 1fr;/*第一列显示为第二列的三倍*/ grid-template-rows: 1fr 3fr; }