zoukankan      html  css  js  c++  java
  • Flex布局

    Flex(Flexible Box)意为"弹性布局",无论是块级元素还是行内元素都可使用Flex布局

    采用Flex布局的元素称为Flex容器(flex container),容器默认有两根轴,水平的主轴(marin axis)和垂直的交叉轴(cross axis)

    默认是水平主轴,子元素沿着主轴从左到右排列

     

    容器的六个属性

    flex-direction 属性决定主轴的方向,有四个值

    row //默认值,主轴为水平方向,起点在左边
    row-reverse //反转,主轴水平方向,起点右边
    column //主轴为垂直方向,起点再上边
    column-reverse //主轴垂直方向,起点下边

     

    flex-wrap flex容器默认是将所有子元素(也叫项目 flex item)在同一行显示,此属性用于换行,有三个值

    nowrap //默认,不换行
    wrap //换行,排不下的会被挤到下面
    wrap-reverse //换行,排不下的会被挤到上面

     

    flex-flow 属性是为了将 flex-direction 和 flex-wrap 合并起来书写

    flex-flow:<flex-direction> || <flex-wrap> //默认值为row nowrap

     

    justify-content 属性用于定义子元素在主轴上的对齐方式

    flex-start //默认值,左对齐
    flex-end //右对齐
    center //居中
    space-between //两端对齐,子元素间间隔相等
    space-around //每个子元素两侧的间隔相等

     

    align-items 属性定义子元素在垂直方向如何对齐,也就是把主轴进行垂直移动

    flex-start //交叉轴的起点对齐,也就是顶部对齐
    flex-end //交叉轴终点对齐,也就是底部对齐
    center //交叉轴中点对齐,居中
    baseline //按容器第一行文字的基线对齐
    stretch //默认值,顶部和底部都对其,如果子元素没高度,则会被拉长

    justify-content:center 和 align-items:center 组合使用可实现子元素水平和垂直居中

     

    align-content 属性定义多根轴线的对齐方式,如果容器只有一根轴线,则此属性无效

    flex-start //与交叉轴起点对齐
    flex-end //与交叉轴终点对齐
    center //与交叉轴中点对齐
    space-between //与交叉轴两端对齐,轴线间间隔相等
    space-around //每根轴线两侧间隔相等 
    stretch //轴线占满整个交叉轴

     

    项目六个属性

    单个项目占据的主轴空间叫main size,占据的交叉轴空间叫cross size

    order 属性定义项目的排列顺序,数值小的在前头,默认值为0,可为负数

    flex-grow 属性定义项目的放大比例,默认值为0,即存在剩余空间也不放大,如果所有项目都为1,则等分剩余空间,如果一个项目为2,其他为1,则前者占据剩余空间会比其他项多一倍

    flex-shrink 属性定义项目缩小比例,默认为1,如果所有项目都为1,当空间不足时,都将等比例缩小。如果一个项目为0,其他项目都为1,则空间不足时,前者不缩小,负值对该属性无效

    flex-basis 属性用于设置项目的宽度,默认值为auto

    flex 属性是flex-grow、flex-shrink和flex-basis的简写,默认值为0 1 auto,建议优先使用此属性,单独写三个属性的话还要让浏览器去推算相关值

    flex:1 //相当于flex:1 1 auto

     

    align-self 属性,容器的align-item用于定义项目的垂直对齐方式,而align-self让单个项目有自己的垂直对齐方式

    默认值为auto,表示继承父元素的align-items属性,没父元素则等同于stretch,align-self属性有6个值,除了auto,其他都与align-items的完全一样

    设为Flex布局后子元素的float、clear和vertical-align属性会失效

     

    参考资料

    阮一峰老师的 Flex布局教程

  • 相关阅读:
    多线程——Thread与Runnable的区别(28)
    多线程——Runnable接口实现多线程(27)
    多线程——调用start()方法与直接调用run()方法的区别
    动态规划---优化编辑器问题(计算字符串距离)
    网易2017春招笔试真题编程题集合(4)——消除重复元素
    网易2017春招笔试真题编程题集合(3)——调整队形
    网易2017春招笔试真题编程题集合(2)——赶去公司
    网易2017春招笔试真题编程题集合(1)——双核处理
    Delphi2010安装win10不能编译问题
    数据类型转换byteushotint64(long)
  • 原文地址:https://www.cnblogs.com/Grani/p/9683384.html
Copyright © 2011-2022 走看看