一、Flex布局
思考
- 多个盒子横向排列使用什么属性?
- 浮动
- 设置盒子间的间距使用什么属性?
- margin
- 需要注意什么问题?
- 浮动的盒子脱标
Flex布局/弹性布局:(PC端对低版本浏览器不兼容/移动端可以随便用)
- 是一种浏览器提倡的布局模型 非常适合结构化的布局(左右、上下...)
- 布局网页更简单、灵活
- 避免浮动脱标的问题
一个网站:http://caniuse.com 查看一个技术兼容和不兼容的浏览器版本
1.1 Flex布局模型构成
作用
- 基于Flex精确灵活控制块级盒子的布局方式,避免浮动布局中脱离文档流现象发生
- Flex布局非常适合结构化布局
设置方式
- 父元素添加display:flex;子元素可以自动的挤压或拉伸 (一行排列/水平排列)
- 水平排列:默认主轴在水平,弹性盒子都是沿着主轴排列
组成部分
- 弹性容器(父元素)
- 弹性盒子 (子元素)
- 主轴
- 侧轴/交叉轴
1.2 主轴对齐方式
使用justify-content调节元素在主轴的对齐方式
- 思考:网页中,盒子之间有距离吗?
- 有
在Flex布局模型中,调节主轴或侧轴的对齐方式来设置盒子之间的间距
属性值 | 作用 |
---|---|
flex-start | 默认值,起点开始依次排列 |
flex-end | 终点开始依次排列 |
center | 沿主轴居中排列 |
space-around | 弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子两侧 |
space-between | 弹性盒子沿主轴均匀排列,空白间距均分在相邻盒子之间 |
space-evenly | 弹性盒子沿主轴均匀排列,弹性盒子与容器之间间距相等 |
- 修改主轴对齐方式属性:justify-content
1.3 侧轴对齐方式
使用align-items调节元素在侧轴的对齐方式
修改侧轴对齐方式属性:
- align-items (添加到弹性容器)
- align-self:控制某个弹性盒子在侧轴的对齐方式(添加到弹性盒子)
属性值 | 作用 |
---|---|
flex-start | 默认值,起点开始依次排列 |
flex-end | 终点开始依次排列 |
center | 沿侧轴居中排列 |
stretch | 默认值,弹性盒子沿着侧轴线被拉伸至铺满容器(子盒子没有高度的时候) |
控制某个盒子在侧轴方向的对齐方式
1.4 Flex弹性盒子尺寸特点
2.1 伸缩比
使用flex属