网页css布局,flex弹性盒子,容器如何设置对齐方式?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
在普通的div
里面,对齐方式分为水平对齐和竖直对齐。在flex
的世界里面,分为主轴对齐和交叉轴对齐。而且主轴不一定水平,交叉轴也不一定垂直。但是两者肯定是90度直角关系,这就是本文的精髓所在。请阅读本文,了解更多flex
弹性布局的详情。
本文测试环境:mac
、chrome@75.0.3770.100
。在阅读本文的内容之前,您一定要弄明白主轴交叉轴及其它相关概念。请参见下面这篇文章:
记住以下观点:
- 主轴,就是
flex-direction
定义的那个轴,四个方向都有可能。 - 交叉轴,就是和主轴90度角垂直的那个轴,不是向右就是向下。
- 主轴和交叉轴成90度角,并且具有相同的起点。
justify-content
justify-content
属性,就是在主轴方向的对齐方式。
取值 | 说明 | |
---|---|---|
flex-start | 主轴的开头 | 默认 |
flex-end | 主轴的结尾 | |
center | 主轴的中心 | |
space-between | 各行之间留有空白 | |
space-around | 各行之前、之间、之后都留有空白 |
下图中,默认flex-direction:row
:
align-items
align-items
属性,定义交叉轴方向上的对齐方式。
特别需要注意的是:这个item
的align-self
属性可覆盖box
的align-items
属性。
取值 | 说明 | |
---|---|---|
flex-start | 交叉轴的开头 | |
flex-end | 交叉轴的结尾 | |
center | 交叉轴的中心 | |
stretch | 元素被拉伸以适应容器 | 默认 |
baseline | 元素位于容器的基线上 |
下图中,默认flex-direction:row
:
align-content
align-content
和align-items
基本类似,都是定义交叉轴上的对齐方式的。
align-content
和align-items
都区别是:
align-items
是用于单行子元素的。- 而
align-content
是应用于多行子元素的。或者说:align-content
的操作对象是多行(列)组成的整体。
align-content
生效的前提,有两个:
- 交叉轴方向上多行子元素。
- 交叉轴上有多余的空间,可以提供给子元素使用。
取值 | 说明 | |
---|---|---|
flex-start | 交叉轴的开头 | |
flex-end | 交叉轴的结尾 | |
center | 交叉轴的中心 | |
stretch | 元素被拉伸以适应容器。 | 默认 |
space-between | 各行之间留有空白 | |
space-around | 各行之前、之间、之后都留有空白 |
下图中,默认flex-direction:row
:
对比范例
下面的例子中,默认flex-direction:column
。主轴为纵向column
,交叉轴为横向row
。那么:
justify-content
定义纵轴上的对齐方式。align-items
定义横轴上的对齐方式。align-content
定义多列元素作为一个整体的对齐方式。
总结
flex
弹性盒子模型的box
容器属性,到本文就基本描述完毕了。大家多多自己练习一下,才能加深印象。更多相关flex
的经验文字,请点击苏南大叔的博客:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。