布局的方案有很多,目前最常见的要数 Flex 布局了
Flex 布局
写弹性布局的基本步骤如下
指定 flex 容器
首先我们要指定一个元素为 flex 容器
1 |
|
设置 flex 布局之后,子元素的 float、clear、vertical-align 都将失效
设置容器的属性
主要有如下六个属性
- flex-direction
- flex-wrap
- flex-flow
- justify-content
- align-items
- align-content
flex-direction
1 | row(默认值):水平方向排列,从左边开始排列。 |
flex-wrap
1 | nowrap(默认值):不换行 |
flex-flow
就是前flex-direction 和 flex-wrap的简写
1 | flex-flow:flex-direction flex-wrap; |
justify-content
定义水平对齐方式对齐方式
1 |
|
align-items
1 | flex-start:上对齐。 |
居中对齐实现
在面试中我们经常会被问道如何实现一个居中对齐,有了上面的知识,我们就可以很容易的实现一个居中对齐。
1 | <style> |
设置子元素的属性
order
排列的时候,order的值越小,排列越靠前,默认为 0
1 | order:1; |
flex-grow
此属性主要用于当空间未被占满的时候。
默认为0,此时空间未被占满子元素会被放大。
如果设置了值,比如说1
2
3
4
5
6.children1{
flex-grow:1;
}
.children2{
flex-grow:2;
}
那么 children2占据 剩余空间 比children1多一倍
flex-shrink
主要用于当空间不足的时候。
默认为1,即如果空间不足,改子元素将缩小
如果设置了此值
1 | .children1{ |
此时,如果空间不足,chilrend2 不会被缩小,children1 都会被等比例缩小
align-self
可以单独设置子元素的对齐方式,会覆盖掉父有元素的align-items,
取值同 align-items