弹性盒子的基本原理
在弹性盒模型布局中,需要事先指定一个容器,后续的所有布局操作都是基于此容器来定义的。其核心是容器会根据布局的需要(动态的)调整其中所包含的子元素(即布局条目)的尺寸、顺序来填充容器的所有可用空间。
当容器的尺寸由于屏幕大小(或者浏览器窗口尺寸)发生变化时,其中包含的布局条目也会自动地进行调整。举个例子,当容器尺寸增大时,包含的条目将会自动拉伸以沾满多余的空白空间;当容器尺寸变小时,条目会自动收缩以适应容器的尺寸防止移除容器的范围。
CSS3 弹性盒子内容
弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。
弹性容器:通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器。
弹性子元素:弹性容器可以包含一个或多个弹性子元素。
注意:弹性容器外及弹性子元素内是正常渲染的,弹性盒子只定义了弹性子元素如何在弹性容器内布局。
flex-direction 属性:指定弹性子元素在父容器中的位置
1)row:横向从左到右排列(左对齐),默认的排列方式
2)row-reverse:反转横向排列(右对齐,从后往前排,最后一项排在最前面)
3)column:纵向排列
4)column-reverse:反转纵向排列,从后往前排,最后一项排在最上面
justify-content 属性:内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐
1)flex-start:弹性项目向行头紧挨着填充。这个是默认值
2)flex-end:弹性项目向行尾紧挨着填充
3)center:弹性项目居中紧挨着填充
4)space-between:弹性项目平均分布在该行上。如果剩余空间为负或者只有一个弹性项,则该值等同于 flex-start 。否则,第1个弹性项的外边距和行的main-start边线对齐,而最后1个弹性项的外边距和行的main-end边线对齐,然后剩余的弹性项分布在该行上,相邻项目的间隔相等
5)space-around:弹性项目平均分布在该行上,两边留有一半的间隔空间。如果剩余空间为负或者只有一个弹性项,则该值等同于center。否则,弹性项目沿该行分布,且彼此间隔相等(比如是20px),同时首尾两边和弹性容器之间留有一半的间隔(1/2*20px=10px)
网友评论