弹性盒模型

一、弹性盒模型

  1.display:flex

    说明:设置为弹性盒(父元素添加)

       要让一个元素变成伸缩容器,需要使用display属性。

       采用flex布局的元素,称为伸缩容器(flex container),容器内的子元素称为伸缩项目(flex item)

    注意:浏览器会将任何直接在伸缩容器里的连续文字块包起来,成为匿名伸缩项目;

       使用flex布局实现上是使元素FFC化(flex formatting context伸缩格式化上下文),FFC是普通流的一种;

       而浮动流和定位流以及CSS其他属性对FFC是有影响的,主要表现在以下几点:

        1)float、clear和vertical-align属性在伸缩项目上没有效果

        2)伸缩容器的margin与其内容的margin不会重叠

        3)text-align属性在伸缩容器上没有效果,因为其只可应用于块级block容器

        4)另外,columns属性伸缩容器上没有效果

      弹性盒模型的两种容器块级伸缩容器和内联伸缩容器的区别类似于block和inline-block的区别,一个独占一行,另一个非独占一行

  2.flex-direction(主轴排列方式)

    说明:顺序指定了弹性子元素在父容器中的位置

       row:默认横向一列内排行

       row-reverse:反向横向排列(右对齐,从后往前排,最后一项排在最前面)

       column:纵向排列

       column-reverse:反向纵向排列,从下往上排,最后一项排在最上面

  3.justify-content(主轴对齐方式)

    说明:内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐

       flex-start默认,顶端对齐

       flex-end末端对齐

       center居中对齐

       space-between两端对齐,中间自动分配

       space-around自动分配距离

  4.align-items(侧轴对齐方式)

    说明:flex-start:弹性盒子元素的侧轴起始位置的边界紧靠住该行的侧轴其实边界

       flex-end:弹性盒子元素的侧轴起始位置的边界紧靠住该行的侧轴结束边界

       center:弹性盒子元素在该行的侧轴上居中放置;(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度)

       baseline:如果弹性盒子元素的行内轴与侧轴同为一条,则该值与“flex-start”等效,其他情况下,该值将参与基线对齐

  5.flex-wrap

    说明:该属性控制flex容器为单行或者多行,同时横轴的方向决定了新行堆叠方向

       nowrap:flex容器为单行,该情况下flex子项可能会溢出容器

       wrap:flex容器为多行,该情况下flex子项溢出的部分会被放置到新行,子项内部会发生断行

       wrap-reverse:反转wrap排列

  6.align-content(航宇行之间的对齐方式)

    说明:当伸缩容器的侧轴还有多余空间时,。本属性可以用来调整伸缩行在容器里的对齐方式,这与调准整缩项目在主轴上对齐方式的<"justify-content">属性类似;注意本属性在只有一行的伸缩容器上是没有效果的

       flex-start没有行间距

       flex-end底对齐没有行间距

       center居中没有行间距

       space-between两端对齐,中间自动分配

       space-around自动分配距离

  7.align-self(加给子元素)

    说明:align-self属性规定灵活容器内被选中项目的对齐方式

       注意:align-self属性可重写灵活容器的align-items属性

       auto默认值,元素属性继承了它父元素的align-items属性;如果没有父容器则为“stretch”;

       stretch元素被拉伸以适应容器

       center元素位于容器的中心

       flex-strat元素位于容器的开头

       flex-end元素位于容器的结尾

       IE和Safari浏览器不支持align-self属性

  8.order

    说明:number排序优先级,数字越大越往后排,默认为0,支持负数

  9.flex(flex-grow,flex-shrink,flex-basis)

    说明:复合属性,设置或检索弹性盒模型对象的子元素如何分配空间;

       缩写(flex:1;)则其计算值为(1 1 0%)

       缩写(flex:auto)则其计算值为(1 1 auto)

       flex:none,则其计算值为(0 0 auto)

       flex:0 auto;或者flex:initial;则其计算值为(0 1 auto),即flex初始值

  10.flex三个属性介绍

    flex-grow:一个数字,规定项目将相对于其他灵活的项目进行扩展量

    flex-shrink:一个数字,规定项目将相对于其他灵活的项目进行收缩的量

    flex-basis:项目的长度

posted @ 2019-01-11 21:20  元哥0317  阅读(325)  评论(0编辑  收藏  举报