• Flex布局


    Flexbox布局官方称之为CSS Flexible Box布局模块,是CSS3中的一种新的布局模式。

    浏览器对最新flexbox(2014年9月份)规范的支持情况:

    • Chrome 29+
    • Firefox 28+
    • Internet Explorer 11+
    • Opera 17+
    • Safari 6.1+ (prefixed with -webkit-)
    • Android 4.4+
    • iOS 7.1+ (prefixed with -webkit-)

    (如果要在移动端使用此属性,建议使用2009年语法版本)

    Flex布局主要有父容器和它的直接子元素组成,其中父容器被称之为flex容器,而其直接的子元素称作为flex项目

    容器默认存在两根轴:主轴(main axis)和侧轴(cross axis)。小心,主轴,它不一定是水平的;

    项目默认沿主轴排列: 单个项目占据的主轴空间叫做main axis,占据的交叉轴空间叫做cross axis。

               项目是沿着主轴(main axis),从主轴起点(main-start)到主轴终点(main-end)或者沿着侧轴(cross axis),从侧轴起点(cross-start)到侧轴终点(cross-end)排列。

    适用于伸缩容器,也就是伸缩项目的父元素的属性:

    1.display:flex | inline-flex

    用来定义伸缩容器,是内联还是块取决于设置的值。这个时候,他的所有子元素将变成flex文档流,称为伸缩项目

    注意:

    • CSS的columns在伸缩容器上没有效果。
    •  float、clear和vertical-align在伸缩项目上没有效果。

    2.flex-direction: row(默认值) | row-reverse | column | column-reverse ( → | ← | ↓ | ↑ )

    主要用来创建主轴,从而定义了伸缩项目放置在伸缩容器的方向。

    3.flex-wrap: nowrap(默认) | wrap | wrap-reverse ( 不换行 | 第一行在上面 | 第一行在下面 )

    主要用来定义伸缩容器里是单行还是多行显示,侧轴的方向决定了新行堆放的方向

    4.flex-flow: row nowrap(默认) , 是flex-direction和flex-wrap的简写

    5.justify-content: flex-start(默认) | flex-end | center | space-between | space-around   

             (左对齐 | 右对齐 | 居中 | 平均分布<第一个伸缩项目一行中的最开始位置,最后一个伸缩项目在一行中最终点位置,项目之间的间隔都相等> | 平均分布<项目之间的间隔比项目与边框的间隔大一倍>)

     定义了项目在主轴上的对齐方式

    6.align-items:flex-start | flex-end | center | baseline | stretch(默认)

           ( 上对齐 | 下对齐 | 居中 | 项目的第一行文字的基线对齐 | 拉伸填充整个伸缩容器<如果项目未设置高度或设为auto,将占满整个容器的高度> )

    属性定义项目在侧轴上如何对齐。

    7.align-content: flex-start | flex-end | center | space-between | space-around | stretch(默认)

    (上对齐 | 下对齐 | 居中 | 平均分布<第一个伸缩项目一行中的最开始位置,最后一个伸缩项目在一行中最终点位置,项目之间的间隔都相等> | 平均分布<项目之间的间隔比项目与边框的间隔大一倍> | 拉伸填充整个伸缩容器<如果项目未设置高度或设为auto,将占满整个容器的高度>)

    属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

    适用于伸缩项目,也就是伸缩容器的子元素的属性:

    1.order: <integer>整数,属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。

    2.flex-grow:<number> 默认为0, 用来指定 flex项目的放大比例; 注意:负数无效。

    如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为3,其他项目都为1,则前者占据的剩余空间将是其他项的三倍

    3.flex-shrink: <number> 定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。注意:负数无效。

       默认情况之下,所有flex项目都可以收缩,但如果将它们设置为0时,他们不会缩小会保持原来的大小。

    4.flex-basis: auto(默认, 项目本来的大小) | length(eg.100px)

    5.flex: 0 1 auto(默认) , 是 flex-grow 、 flex-shrink 和 flex-basis 的简写;其中第二个和第三个参数是可选参数

       该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。

    6.align-self: auto | flex-start | flex-end | center | baseline | stretch

      属性允许单个项目有与其他项目不一样的对齐方式, 可覆盖align-items属性。默认值为auto, 表示继承父元素的align-items属性, 如果没有父元素,则等同于stretch;

      图例中1-4,父元素设置了flex-start, 5单独设置了flex-end;

    例子:http://codepen.io/LandonSchropp/pen/KpzzGo
         http://www.ruanyifeng.com/blog/2015/07/flex-examples.html

  • 相关阅读:
    【学习总结】iOS 的机制
    【刷题】面筋-游戏测试-对二次元游戏的认识
    【JAVA】Mac下查看已安装的jdk版本及其安装目录
    【JAVA】MacBook安装Java环境及eclipse
    【学习总结】哈希表:哈希函数构造;哈希表解决地址冲突的方法
    【刷题】面筋-JAVA-hashmap和hashtable
    【刷题】面筋-测开-软件测试的生命周期
    【学习总结】jupyter notebook中以Markdown格式显示文字信息
    【学习总结】n & (n-1)
    【学习总结】IOS系统和Android系统的区别
  • 原文地址:https://www.cnblogs.com/mina-huojian66/p/6114321.html
Copyright © 2020-2023  润新知