弹弹弹,弹走鱼尾纹

今天我们简单谈一下弹性盒,仅限于相对父元素的属性浅谈。
2009年,w3c提出了一种新的方案,Flex布局,它可以简便、完整、响应式地实现各种页面布局。目前它已得到所有浏览器的支持,这意味着现在就能很安全地使用这项功能。
先来介绍一下什么是flex,flex是flex box的缩写,意为“弹性布局”,用来为盒装模型提供最大的灵活性。
任何一个容器都可以指定为flex布局:

.box{
    display:flex;
}

行内元素也可以使用flex布局:

.box{
    display:inline-flex;
}

注意!!!设为flex布局之后,子元素的float、clear和vertical-align属性将失效。
我们先设置几个盒子标签

<div class="box">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
    <div>6</div>
    <div>7</div>
    <div>8</div>
    <div>9</div>
    <div>10</div>
</div>

我们给这些盒子设置一个样式,便于看的清楚

.box{
    width: 500px;
    height: 200px;
    background: red;
}
.box div{
    width: 60px;
    height: 30px;
    background: pink;
    border: 1px solid rgb(27, 25, 25);
}

都知道块元素的特点是独占一行,所以在不给它设置任何其他属性之前他都是独占一行的:


div.png

我们先给他设置一个弹性布局:

    .box{
        display: flex;
    }

看一下效果:


flex.png

可以看到它和浮动有点类似,脱离标准文档流,默认排到一排。

我们再来看一下它都有哪些属性:
1、flex-direction
它决定主轴方向即项目的排列方式
①row:此为默认值,主轴为水平方向,起点在左端。和不作任何设置的情况下相同;
②row-reverse:主轴为水平方向,起点在右端。

.box{
      display: flex;
      flex-direction: row-reverse;
}

实现效果是这样的:


row-reverse.png

③column:主轴为垂直方向,起点在顶端。

.box{
    display: flex;
    flex-direction: column;
}

是这样的:


column.png

④column-reverse:主轴为垂直方向,起点在底部。

.box{
    display: flex;
    flex-direction: column-reverse;
}
column-reverse.png

2、flex-wrap
是否换行
默认情况下,项目都排在一条线上(轴线)。
flex-wrap属性定义,如果在一条轴线上排不下,如何换行。
它可以取三个值:
①nowrap默认值,在不设置的情况下默认不换行:


nowrap.png

②wrap
换行,第一行在上方

.box{
    display: flex;
    flex-wrap: wrap;
}
wrap.png

③wrap-reverse
换行,第一行在下方

.box{
     display: flex;
    flex-wrap: wrap-reverse;
}
wrap-reverse.png

3、flex-flow
是flex-direction和flex-wrap的综合写法,默认值为row nowrap。
4、justify-content
定义了项目在主轴上的对齐方式
①flex-start左对齐

.box{
    display: flex;
    justify-content: flex-start;
}
flex-start.png

②flex-end右对齐

    .box{
        display: flex;
         justify-content: flex-end;
    }
flex-end.png

③center居中

.box{
    display: flex;
    justify-content: center;
}
image.png

④space-between两端对齐,项目之间间隔相等

.box{
    display: flex;
    justify-content: space-between;
}
image.png

⑤space-around每个项目两侧的间隔相等。所以项目之间的间隔比项目与边距的间隔大一倍

.box{
    display: flex;
    justify-content: space-around;
}
image.png

5、align-items垂直方向对齐方式(适用于单行)
当设为center时居中

.box{
    display: flex;
    justify-content: space-around;
    align-items: center;
}
image.png

6、align-content
适用于多行时的垂直方向对齐方式。

今天就简单介绍到这。
小编能力有限,存在不足或不全,请大家指出,共同学习与交流。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,706评论 0 26
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,587评论 0 6
  • 前言 FlexBox是css3的一种新的布局方式,天生为解决布局问题而存在的它,比起传统的布局方式,我们使用Fle...
    zevei阅读 1,456评论 23 3
  • 传统的网页布局基于盒装模型,使用display,position,float属性来达成各种布局。对于一些特殊的布局...
    exialym阅读 2,674评论 0 11
  • 一、Flex 布局是什么? CSS3引入了一种新的布局模式——Flexbox布局,即伸缩盒模型布局(Flexibl...
    侠客有情剑无情QAQ阅读 5,835评论 7 94