我爱编程

flex 详解+实例

2018-06-11  本文已影响0人  WlSE

flexBox 弹性盒子 by $css-stricks


1.flex的兼用性

lex布局是不支持ie8,9的,所以建议,如果要做兼容ie8的pc端项目,还是老老实实用浮动布局吧~!但是现在是移动互联网的时代,移动端我们还是放心大胆用吧,请抛弃恶心的清除浮动!

2.语法速记

作用的对象:

container父级 说明:(d) 表示 默认

item 子级 -------- 请注意float,clear并且vertical-align对Flex项目没有影响

3.详解

by -- CSND

.box{
    /* flex布局第一步:找到你要布局元素的父元素 */
    display:flex;
    /* 第二步:判断方向:元素是横着排还是竖着排,默认为横着排,当项目空间不够时,是否换行 */
    flex-direction: row(横向) | column(纵向);
    flex-wrap:nowrap(默认不换行) | wrap (换行,新元素在下面一行) | wrap-reverse(换行,新元素在上面一行)
    /* 第三步:根据方向,进行布局操作,注意敲黑板啦
        当为横向时,水平布局的操作用justify-content属性,垂直方向的操作用align-items属性;
        当为纵向时,两属性的作用正好相反,水平布局的操作用align-items属性,垂直方向的操作用justify-content属性;
        以上两个属性是用的最多的属性了。
    */
    justify-content: flex-start | flex-end | center | space-between | space-around;
    align-items: flex-start | flex-end | center | baseline | stretch;
}

justify-content 和 align-items 属性(设置到父元素)

设置到子元素的常用属性:

4.flex布局常用demo

1.带有icon的标题,icon居中

.title{
      margin-top:20px;
      display: flex;
      width: 100%;
      justify-content: center;
      align-items: center;
    }

2.左中右布局,左边右定宽,中间部分自适应。

    在父元素中设置 justify-content: space-between;在左右子元素中设置flex-shrink:0(防止空间不足时缩小);在中间元素下设置flex-grow:1(让它撑满中间区域);

3.input输入框跟不定长的label撑满一行

其实跟上面要使用的方法差不多,将父元素设置justify-content: space-between,将要固定的元素(label)设置flex-shrink:0,将要铺满的元素(input)设置flex-grow:1。

4.流式布局(一排放4个,放不下就换行)

  .flow{
      display: flex;
      flex-wrap:wrap;
      justify-content: flex-start;
      border:1px solid #e3e3e3;
    }
    .flow .item{
      flex:0 0 22%;
      /*
        等同于
        flex-grow: 0;
        flex-shrink:0 ;
        flex-basis:22%;
      */
      padding-bottom: 22%;/* 做到宽高相等 */
      margin: 1.5%;
      background: yellow;
    }
上一篇下一篇

猜你喜欢

热点阅读