zoukankan      html  css  js  c++  java
  • flex 弹性布局

    浏览器:

    Chrome 21+  Opera 12.1+  FireFox 22+  Safari 6.1+  IE 10+

    Webkit内核的浏览器需要加前缀:.box{display:-webkit-flex};苹果的Safari浏览器。

    设置了flex后 float 、clear 、vertical-align 失效。

    基本:

    水平主轴:main axis,垂直交叉轴:cross axis,他的子元素:flex-item,子元素主轴:main size,子元素交叉轴:cross size

    容器的六个属性:(设置在父元素上)

    一、

      flex-driection:row|row-reverse|cloumn|cloumn-reverse;

        · row:默认值,元素从左往右排列;

        · row-reverse:元素从右往左排列;

        · cloumn:元素从上往下排列;

        ·cloumn-reverse:元素从下往上排列;

      默认挤在一行上面,子元素越多,每个子元素的宽就越小。

    二、

      flex-wrap:nowrap|wrap|wrap-reverse;

        · nowrap:默认值,不换行;

        · wrap:换行,第一行在上方;

        · wrap-reverse:换行,第一行在下方;

      此属性可以使子元素是否排列一行。

      如果flex-driection属性是cloumn,则元素排成一列,wrap在左侧,wrap-reverse在右侧;

    三、

      flex-flow:<flex-dirsction> | | <flex-wrap>;

      此属性是flex-dirsction和flex-wrap的缩写,默认值row nowrap;(单行显示,不换行);

    四、

      justify-content:flex-start|flex-end|center|space-betwen|space-around;

        · flex-start:子元素从左往右排列;

        · flex-end:子元素从右往左排列;

        · space-betwen:两端对齐,项目之间间隔都相等;

        · space-around:每个项目之间的间隔相等,所以项目之间的间隔比两头的间隔要大。

      控制子元素的交叉轴。

    五、

      align-items:flex-start|flex-end|center|baseline|stretch;

        · flex-start:让子元素在父级元素顶部展示;

        · flex-end:让子元素在父级元素底部展示;

        · center:让子元素在父级元素的水平居中线上展示;

        · baseline:让子元素的第一行字水平对齐;(以高度最高的子元素为基准)

        · stretch:让子元素的高沾满整个父级的高,宽度不变;(子元素必须没有高度,或者为auto)

      控制子元素的主轴。

    六、

      align-content:flex-start|flex-end|center|space-between|space-around|stretch;

        · 定义了多跟轴线的对齐方式,如果只有一根轴线则不起作用;

        · flex-start:子元素与父级交叉轴起点对齐;

        · flex-end:子元素与父级与交叉轴终点对齐;

        · center:子元素与父级与交叉轴中点对齐;

        · space-between:与交叉轴两端对齐,轴线之间平均分布;

        · space-around:每根轴线的两侧都相等,所以子级之间的间隔比两端大。

        · stretch:轴线占满整个交叉轴。

      控制子元素主轴和父元素交叉轴的对齐方式。

    项目的六个属性:(设置在子元素上)

    一、

      order:<integer>

        .item:nth-child(1){order:-1}   

      给子元素定义,数值越小越靠前(越靠上),默认值为0;

    二、

      fexd-grow:<number>

        .item:nth-child(1){flex-grow:1} 

      给子元素定义,数值代表等分剩余宽度的份数,默认值0,当前子元素的宽度;

    三、

      felx-shrink:<number>

        .item:nth-child(1){flex-shrink:1}

      给子元素定义等比缩小。如果该子元素的 flex-shrink为0,其他元素都为1,则空间不足时缩小其他项目,该元素保持原大小;

    四、

      flex-basis:<length>|auto;

        · length:定义该子元素所占的宽度,如果超出剩余宽度显示剩余宽度,没有超出就显示定义宽度;

        · auto:项目本来的大小;

      设置固定值或者百分比。

    五、

      flex:flex-grow、flex-shrink、flex-basis的简写,默认值0 1 auto,后两个属性可选;

        · auto:(0,0,auto)

        · none:(0,0,auto)

    六、

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

        · 给单独的子元素设置,属性除了auto和align-items属性一致;

        · auto:继承父元素属性;

  • 相关阅读:
    <转载> diff 和 patch 命令
    JZ2440开发板之LCD
    发音篇--第一章
    JZ2440开发板之系统始终和串口
    【还是用回csdn了,这个blog就不更新了】
    MyBatis 汉字作为查询条件查询不到 MySQL 中的结果
    LeetCode 617. 合并二叉树 Merge Two Binary Tree
    LeetCode 454. 四数相加 II 4Sum II
    LeetCode 441. 排列硬币 Arranging Coins
    leetcode ——从排序数组中删除重复项 II
  • 原文地址:https://www.cnblogs.com/xinchenhui/p/10283269.html
Copyright © 2011-2022 走看看