一开始使用flex,看到属性那么多,名字这么复杂,有点头皮发麻,好在几天下来也总结了一些常用的效果,故记录下来(教程就不再赘述,去看阮一峰老师的教程即可):
flex默认值是 flex:0 1 auto 指的是 flex-grow:0; flex-shrink:1; flex-basic:auto;
flex-grow
属性定义项目的放大比例,默认为0
,即如果存在剩余空间,也不放大。
flex-shrink
属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。
flex-basis
属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto
,即项目的本来大小。
我自己的用法:
/* 匹配元素有flex的属性 则赋予display: flex; 样式*/
[flex]{
display: flex;
}
/* 内部元素垂直居中*/
[flex~="cross:center"] {
align-items: center;
}
/* 内部元素水平居中*/
[flex~="main:center"] {
justify-content: center;
}
/* 内部元素水平垂直居中*/
[flex~="all:center"] {
align-items:center;
justify-content: center;
}
/* 两端对齐,项目之间的间隔都相等*/
[flex~="main:justify"] {
justify-content: space-between;
}
/* 主轴从上到下排列*/
[flex~="box:vertical"]{
flex-direction:column;
align-items:stretch;
}
/* 主轴从左到右排列*/
[flex~="box:horizontal"]{
flex-direction: row;
}
/* 允许缩放 缩放比例 为 1 */
[flex~="box:zoom"]{
flex-grow: 1;
flex-shrink: 1;
flex-basic: auto;
}
/* 不允许缩放*/
[flex~="box:noZoom"]{
flex-grow: 0;
flex-shrink: 0;
flex-basic: auto;
}
具体用法:
<div flex='all:center'>
<div>
inner div
</div>
</div>