美文网首页
弹性盒FlexibleBox的相关概念

弹性盒FlexibleBox的相关概念

作者: 科研者 | 来源:发表于2017-09-12 12:25 被阅读0次

一. 弹性盒的定义

弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。
弹性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器。
弹性容器内包含了一个或多个弹性子元素。

注意:

  1. 弹性容器外及弹性子元素内是正常渲染的。弹性盒子只定义了弹性子元素如何在弹性容器内布局。
  2. 容器先根据”flex-wrap"的属性值来确定是单行布局或多行布局,然后把条目分配到对应的行中,最后在每一行内进行空白空间的分配。

二. 尺寸

弹性子元素的主轴尺寸的公式为:

假设:

弹性容器的主轴尺寸为ConSize;
该弹性容器的某行内有n个弹性子元素,
这些弹性子元素的flex-basis分别为Item1Basis、Item2Basis、Item3Basis......ItemNBasis;
这些弹性子元素的flex-grow分别为Item1Grow、Item2Grow、Item3Grow......ItemNGrow;
这些弹性子元素的flex-shrink分别为Item1Shrink、Item2Shrink、Item3Shrink......ItemNShrink;
这些弹性子元素的主轴尺寸分别为Item1Size、Item2Size、Item3Size......ItemNSize;

BasisTotal = Item1Basis + Item2Basis + …+ ItemNBasis
GrowTotal = Item1Grow + Item2Grow + …+ ItemNGrow
ShrinkTotal = Item1Shrink + Item2Shrink + …+ ItemNShrink

则有:
对于任意一个弹性子元素ItemX,有:

当弹性容器在主轴尺寸上有多余的空间时,即:当 ConSize >= BasisTotal 时,有:
ItemXSize = ItemXBasis + ( ConSize - BasisTotal )*( ItemXGrow/GrowTotal )

当弹性容器在主轴尺寸上的空间不足时,即:当 ConSize <= BasisTotal 时,有:
ItemXSize = ItemXBasis + ( ConSize - BasisTotal )*( ItemXShrink/GrowShrink )
即:
ItemXSize = ItemXBasis - ( BasisTotal - ConSize)*( ItemXShrink/GrowShrink )

三. 对齐

justify-content: 设置或检索 在 弹性容器的行的范围内 弹性盒子元素在主轴方向上的对齐方式。
操作范围:行;
操作对象:行内的弹性子元素;
适用于:flex容器;
备注:当弹性盒里一行上的所有子元素都不能伸缩或已经达到其最大值时,这一属性可协助对多余的空间进行分配。当元素溢出某行时,这一属性同样会在对齐上进行控制。
取值效果如下:

justify-content属性不同值的布局效果.jpg

align-content: 设置或检索 在 弹性容器的范围内 行在侧轴方向上的对齐方式。
操作范围:弹性容器;
操作对象:行;
适用于:多行的flex容器;
备注:请注意本属性在只有一行的伸缩容器上没有效果。
取值效果如下:

align-content属性的不同值的布局效果.jpg

align-items: 定义弹性盒子元素自己 在 弹性容器的行的范围内 在侧轴方向上的对齐方式。
操作范围:行;
操作对象:行内的弹性子元素;
适用于:flex容器;
取值效果如下:

align-items属性不同值的布局效果.jpg

align-self: 定义 在 弹性容器的行的范围内 弹性盒子元素在侧轴方向上的对齐方式。
操作范围:行;
操作对象:行内的弹性子元素;
适用于:flex子项

相关文章

  • 弹性盒FlexibleBox的相关概念

    一. 弹性盒的定义 弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。弹性...

  • flex弹性盒子布局

    Flex是FlexibleBox的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为...

  • 对Flex布局的理解及其使用场景 响应式设计

    Flex是FlexibleBox的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为...

  • ReactNative新手快速入门(flex布局篇)

    一、Flex布局--简介 Flex是 FlexibleBox的缩写, 意为"弹性布局", 用来为盒装模型提供最大的...

  • css相关——盒模型、弹性盒

    盒模型(box-sizing属性) 盒模型尺寸基准有两种,分别是默认的content-box(标准盒模型)(默认)...

  • CSS中的Flex布局

    Flex 弹性布局 概念 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大...

  • CSS中的弹性盒子总结

    一、弹性盒布局相关词汇1.弹性容器(Flex container)包含着弹性项目的父元素。通过设置 display...

  • Flex 弹性盒子

    这篇文章主要是分享了Flex弹性盒模型的基本概念, 简要介绍了Flex弹性盒模型的发展历程,最后重点介绍了Flex...

  • CSS3弹性盒子

    弹性盒模型 弹性盒模型是CSS3新增的属性,设置display属性值为flex的元素为弹性盒模型对象。弹性盒子由弹...

  • 弹性盒

    弹性盒-flex布局 弹性盒是css3的一种新的布局模式CSS3弹性换盒,是一种当页面需要适应不同的屏幕大小以及设...

网友评论

      本文标题:弹性盒FlexibleBox的相关概念

      本文链接:https://www.haomeiwen.com/subject/xwlcsxtx.html