zoukankan      html  css  js  c++  java
  • flex-box 弹性盒子布局

    Flex是什么

        弹性布局(flexible box)模块(目前是w3c候选的推荐)旨在提供一个更加有效的方式来布置,对齐和分布在容器之间的各项内容,即使它们的大小是未知或者动态变化的。

      由于flexbox是一个整体模块,而不是单一的一个属性,它涉及到了很多东西,包括它的整个属性集。它们之中有一些是在父容器上设置,有一些则是在子容器上设置。

    与栅格布局(grid Layout)的区别

        Flexbox布局是最合适的一个应用程序的组件,以及小规模的布局,而网格布局是用于较大规模的布局。

     属性介绍

    1、display属性 (适用于父类容器元素上)   定义一个flex容器,内联或者根据指定的值,来作用于下面的子类容器。

    • box:将对象作为弹性伸缩盒显示。(伸缩盒最老版本)
    • inline-box:将对象作为内联块级弹性伸缩盒显示。(伸缩盒最老版本)
    • flexbox:将对象作为弹性伸缩盒显示。(伸缩盒过渡版本)
    • inline-flexbox:将对象作为内联块级弹性伸缩盒显示。(伸缩盒过渡版本)
    • flex:将对象作为弹性伸缩盒显示。(伸缩盒最新版本)
    • inline-flex:将对象作为内联块级弹性伸缩盒显示。(伸缩盒最新版本)
    • css 列(CSS columns)在弹性盒子中不起作用
    • floatclear and vertical-align 在flex项目中不起作用2、flex-direction (适用于父类容器的元素上)   定义:设置或检索伸缩盒对象的子元素在父容器中的位置。原文来自:http://caibaojian.com/flexbox-guide.html

    2、flex-direction (适用于父类容器的元素上)  定义:设置或检索伸缩盒对象的子元素在父容器中的位置。

    • row:横向从左到右排列(左对齐),默认的排列方式。
    • row-reverse:反转横向排列(右对齐,从后往前排,最后一项排在最前面。
    • column:纵向排列。
    • column-reverse:反转纵向排列,从后往前排,最后一项排在最上面。
      .box{
          display:-webkit-flex;
          display:flex;
          flex-direction:row;
          }

    3、flex-wrap (适用于父类容器上) 设置或检索伸缩盒对象的子元素超出父容器时是否换行。

    • nowrap:当子元素溢出父容器时不换行。
    • wrap:当子元素溢出父容器时自动换行。
    • wrap-reverse:反转 wrap 排列。
      .box{
          display:-webkit-flex;
          display:flex;
          -webkit-flex-wrap:nowrap;
          flex-wrap:nowrap;
      }

     4、flex-flow (适用于父类容器上)  复合属性。设置或检索伸缩盒对象的子元素排列方式。(本属性,实为flex-direction属性和flex-wrap属性的结合)

    • [ flex-direction ]:定义弹性盒子元素的排列方向。
    • [ flex-wrap ]:定义弹性盒子元素溢出父容器时是否换行。
      .box{
          display:-webkit-flex;
          display:flex;
          -webkit-flex-flow:row nowrap;
          flex-flow:row nowrap;
      }

     5、justify-content (适用于父类容器上)  设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式。  当弹性盒里一行上的所有子元素都不能伸缩或已经达到其最大值时,这一属性可协助对多余的空间进行分配。当元素溢出某行时,这一属性同样会在对齐上进行控制。

    • flex-start:弹性盒子元素将向行起始位置对齐。
    • flex-end:弹性盒子元素将向行结束位置对齐。
    • center:弹性盒子元素将向行中间位置对齐。
    • space-between:弹性盒子元素会平均地分布在行里。如果最左边的剩余空间是负数,或该行只有一个子元素,则该值等效于'flex-start'。
    • space-around:弹性盒子元素会平均地分布在行里,两端保留子元素与子元素之间间距大小的一半。
      .box{
          display:-webkit-flex;
          display:flex;
          -webkit-justify-content:flex-start;
          justify-content:flex-start;
      }

    6、align-items (适用于父类容器上)   设置或检索弹性盒子元素在侧轴(纵轴)方向上的对齐方式。

    • flex-start:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴起始边界。
    • flex-end:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴结束边界。
    • center:弹性盒子元素在该行的侧轴(纵轴)上居中放置。(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度)。
    • baseline:如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效。其它情况下,该值将参与基线对齐。
    • stretch:如果指定侧轴大小的属性值为'auto',则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸,但同时会遵照'min/max-width/height'属性的限制。
      .box{
          display:-webkit-flex;
          display:flex;
          -webkit-align-items:flex-start;
          align-items:flex-start;
      }

    7、align-content (适用于父类容器上) 设置或检索弹性盒堆叠伸缩行的对齐方式。

    • flex-start:各行向弹性盒容器的起始位置堆叠。
    • flex-end:各行向弹性盒容器的结束位置堆叠。
    • center:各行向弹性盒容器的中间位置堆叠。
    • space-between:各行在弹性盒容器中平均分布。
    • space-around:各行在弹性盒容器中平均分布,两端保留子元素与子元素之间间距大小的一半。
    • stretch:各行将会伸展以占用剩余的空间。如果剩余的空间是负数,该值等效于'flex-start'。在其它情况下,剩余空间被所有行平分,以扩大它们的侧轴尺寸。
      .box{
          display:-webkit-flex;
          display:flex;
          -webkit-flex-wrap:wrap;
          flex-direction:wrap;
          -webkit-align-content:flex-start;
          align-content:flex-start;
      }

    8、order (适用于弹性盒模型容器子元素)

    • <integer>:用整数值来定义排列顺序,数值小的排在前面。可以为负值。
      .box{
          display:-webkit-flex;
          display:flex;
          -webkit-order:-1;
          order:-1;
      }
  • 相关阅读:
    【笔记】DSP程序烧写问题
    图解DotNet框架之二:System
    图解DotNet框架之一:编译与执行引擎(下)
    图解DotNet框架之四:System.Data
    图解DotNet框架之九:WPF
    图解DotNet框架之十:WCF(Remoting,Webservice)
    图解DotNet框架之一:编译与执行引擎(上)
    图解DotNet框架之六:System.XML
    反射手册笔记 2.程序集,对象和类型
    图解DotNet框架之三:System.IO
  • 原文地址:https://www.cnblogs.com/HXW-from-DJTU/p/6113275.html
Copyright © 2011-2022 走看看