flex布局

2018-03-20  本文已影响0人  ismyshellyiqi

这里是我自己的一些总结,如果需要具体flex的讲解,阮一峰老师的教程对我让我受益匪浅。后续如果有坑,在这里继续补充

  1. 当使用了flex-wrap: wrap;align-items 就不起作用了
    要使用align-content:flex-start
  2. flex的兼容写法
/* 子元素-平均分栏 */
.flex1 {
    -webkit-box-flex: 1;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 1;        /* OLD - Firefox 19- */
    width: 20%;            /* For old syntax, otherwise collapses. */
    -webkit-flex: 1;          /* Chrome */
    -ms-flex: 1;              /* IE 10 */
    flex: 1;                  /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
/* 父元素-横向排列(主轴) */
.flex-h {
    display: box;             /* OLD - Android 4.4- */
    display: -webkit-box;     /* OLD - iOS 6-, Safari 3.1-6 */
    display: -moz-box;       /* OLD - Firefox 19- (buggy but mostly works) */
    display: -ms-flexbox;     /* TWEENER - IE 10 */
    display: -webkit-flex;   /* NEW - Chrome */
    display: flex;           /* NEW, Spec - Opera 12.1, Firefox 20+ */
    /* 09版 */
    -webkit-box-orient: horizontal;
    /* 12版 */
    -webkit-flex-direction: row;
    -moz-flex-direction: row;
    -ms-flex-direction: row;
    -o-flex-direction: row;
    flex-direction: row;
}
/* 父元素-横向换行 */
.flex-hw {
    /* 09版 */
    /*-webkit-box-lines: multiple;*/
    /* 12版 */
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    -o-flex-wrap: wrap;
    flex-wrap: wrap;
}
/* 父元素-水平居中(主轴是横向才生效) */
.flex-hc {
    /* 09版 */
    -webkit-box-pack: center;
    /* 12版 */
    -webkit-justify-content: center;
    -moz-justify-content: center;
    -ms-justify-content: center;
    -o-justify-content: center;
    justify-content: center;
    /* 其它取值如下:
        align-items  主轴原点方向对齐
        flex-end        主轴延伸方向对齐
        space-between   等间距排列,首尾不留白
        space-around    等间距排列,首尾留白
     */
}
/* 父元素-纵向排列(主轴) */
.flex-v {
    display: box;             /* OLD - Android 4.4- */
    display: -webkit-box;     /* OLD - iOS 6-, Safari 3.1-6 */
    display: -moz-box;       /* OLD - Firefox 19- (buggy but mostly works) */
    display: -ms-flexbox;     /* TWEENER - IE 10 */
    display: -webkit-flex;   /* NEW - Chrome */
    display: flex;           /* NEW, Spec - Opera 12.1, Firefox 20+ */
    /* 09版 */
    -webkit-box-orient: vertical;
    /* 12版 */
    -webkit-flex-direction: column;
    -moz-flex-direction: column;
    -ms-flex-direction: column;
    -o-flex-direction: column;
    flex-direction: column;
}
/* 父元素-纵向换行 */
.flex-vw {
    /* 09版 */
    /*-webkit-box-lines: multiple;*/
    /* 12版 */
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    -o-flex-wrap: wrap;
    flex-wrap: wrap;
}
/* 父元素-竖直居中(主轴是横向才生效) */
.flex-vc {
    /* 09版 */
    -webkit-box-align: center;
    /* 12版 */
    -webkit-align-items: center;
    -moz-align-items: center;
    -ms-align-items: center;
    -o-align-items: center;
    align-items: center;
}
/* 子元素-显示在从左向右(从上向下)第1个位置,用于改变源文档顺序显示 */
.flex-1 {
    -webkit-box-ordinal-group: 1;   /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-ordinal-group: 1;    /* OLD - Firefox 19- */
    -ms-flex-order: 1;            /* TWEENER - IE 10 */
    -webkit-order: 1;              /* NEW - Chrome */
    order: 1;                      /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
/* 子元素-显示在从左向右(从上向下)第2个位置,用于改变源文档顺序显示 */
.flex-2 {
    -webkit-box-ordinal-group: 2;   /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-ordinal-group: 2;    /* OLD - Firefox 19- */
    -ms-flex-order: 2;            /* TWEENER - IE 10 */
    -webkit-order: 2;              /* NEW - Chrome */
    order: 2;                      /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
//为了更好的兼容性,我们需要给容器声明flex-h/flex-v,而不是一般的flex:
/* 父元素-flex容器 */
.flex {
    display: box;             /* OLD - Android 4.4- */
    display: -webkit-box;     /* OLD - iOS 6-, Safari 3.1-6 */
    display: -moz-box;       /* OLD - Firefox 19- (buggy but mostly works) */
    display: -ms-flexbox;     /* TWEENER - IE 10 */
    display: -webkit-flex;   /* NEW - Chrome */
    display: flex;           /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
上一篇 下一篇

猜你喜欢

热点阅读