如何区分使用justify-content、align-items与text-align三类CSS属性
三个CSS属性适用场景快速区分方法&速查
快速判断逻辑
你可以按照2步快速定位要用的属性:
- 先判断你要控制的目标是不是行内内容/文本,如果是,直接用
text-align就可以:text-align作用在块级父元素上,专门控制内部的文本、图片、行内块这类行内级元素的水平对齐,和flex布局没有任何关系
- 如果父元素已经开启了
display: flex,要控制flex子元素的对齐,就记牢flex布局的核心规则:主轴对应justify-content,交叉轴对应align-items- 默认flex主轴为水平方向(
flex-direction: row)时:justify-content控制子元素水平对齐,align-items控制子元素垂直对齐 - 如果修改主轴为垂直方向(
flex-direction: column)时:justify-content控制子元素垂直对齐,align-items控制子元素水平对齐
- 默认flex主轴为水平方向(
注意:
justify-content和align-items都是写在flex父容器上的属性,不需要写在子元素上。
速查表
| 属性名 | 适用场景 | 作用对象 | 生效前提 |
|---|---|---|---|
text-align | 行内内容(文本、图片、行内块)的水平对齐 | 普通块级父元素 | 无,不需要开启flex |
justify-content | flex子元素在主轴方向的对齐 | flex父容器 | 父元素已设置display: flex |
align-items | flex子元素在交叉轴方向的对齐 | flex父容器 | 父元素已设置display: flex |
常见场景示例
- 普通卡片内的标题文字水平居中:给卡片加
text-align: center - flex布局的导航栏选项左右贴边排列:给导航父容器加
display: flex; justify-content: space-between - flex容器内的子元素垂直居中:给flex父容器加
align-items: center - flex容器内的子元素同时水平+垂直居中:给父容器加
display: flex; justify-content: center; align-items: center
内容的提问来源于stack exchange,提问作者Ping Souravghosh
相关产品推荐
相关产品推荐

