Css3 弹性盒子(Flex box)

前言

弹性盒子,顾名思义:它是具有弹性功能的,在Web网页中,你所看见的内容,不会随着网页宽度的变化而打乱了排版。今天以一种非常白话的方式和大家谈一谈我对Flex box 的认识。

Flex box 中属性作用的对象

  • 父级元素
  • 直接的子元素
    这里我强调了,是直接的子元素,假设我们html代码如下

    Css代码为:
    .wrap-items{
    width: 100%;
    height: 200px;
    background-color: lightgray;
    display: flex;
    }
    .wrap-items>li{
    width: 100px;
    height:80px;
    background-color: #888;
    text-align: center;
    line-height: 80px;
    }
  1. ulli为直接的父子关系,属性display:flex写在ul中,可以work
  2. navli是祖辈之间的关系 ,属性写在nav中这里就不会work

生效效果图:

Css3 弹性盒子(Flex box)_第1张图片
Paste_Image.png

Flex 有哪些属性?

  • display
  • flex-direction
  • flex-wrap
  • justify-content
  • align-items
  • align-content
  • order
  • align-self
  • flex

介绍了Flex box作用对象,和它的属性,接着我们就按作用对象给属性给分类

属性分类

写在父元素上上的:

  • display
  • flex-direction
  • flex-wrap
  • align-content
  • justify-content
  • align-items

剩下的就是写在子元素上的咯:

  • order
  • align-self
  • flex

我对这些属性的理解是什么呢?

  • display : flex 指定我要用弹性盒子的属性.默认就是水平排序了
  • flex-direction : 指定排列的方向,默认水平
  • flex-wrap : 超过自身宽度,是否换行,默认换行
  • justify-content : 水平方向上对齐
  • align-items : 垂直方向上对齐
  • align-content : 针对- flex-warp 属性发生换行,具有的排列方式
  • order : 改变某个元素的相对位置或者说顺序
  • align-self : 针对某个元素定义垂直对其方式
  • flex :针对某个元素按比例定义自身大小

每个属性的身上又有哪些值呢?

  • display : flex ;说弹性盒子,这个值肯定是唯一的

行还是列

  • flex-direction :row | column | row-reverse | ;其实在我理解也就是按行排或者按列排

flex-direction:row;默认就是按行排(所以可以不写)

Css3 弹性盒子(Flex box)_第2张图片
Paste_Image.png

flex-direction:column

Css3 弹性盒子(Flex box)_第3张图片
Paste_Image.png

换行吗?

  • flex-wrap :nowrap | wrap ; 换行或者不换行咯(超过自身width)

flex-wrap:wrap;父级元素小于子元素的宽度之和,就会发生换行,否则不换行

Css3 弹性盒子(Flex box)_第4张图片
Paste_Image.png

flex-wrap:nowrap;因为自身宽度不够,又因为弹性的作用,让他们挤在一起

Css3 弹性盒子(Flex box)_第5张图片
Paste_Image.png

水平对齐方式

  • justify-content : flex-start | flex-end | center | space-between | space around ;左对齐,右对齐,中心对其,等分对其,....

justify-content:flex-end;默认的 flex-start 就不截图了.

Css3 弹性盒子(Flex box)_第6张图片
Paste_Image.png

justify-content:center ;

Css3 弹性盒子(Flex box)_第7张图片
Paste_Image.png

justify-content:space-betwen ;

Css3 弹性盒子(Flex box)_第8张图片
Paste_Image.png

justify-content:space-around;左右间距加起来等于中间的某个间距

Css3 弹性盒子(Flex box)_第9张图片
Paste_Image.png

垂直对齐方式

  • align-items :flex-start | flex-end | center | baseline | stretch
    - align-items :flex-end;默认的flex-start ,不截图了
Css3 弹性盒子(Flex box)_第10张图片
Paste_Image.png

align-items:center;

Css3 弹性盒子(Flex box)_第11张图片
Paste_Image.png

flex-wrap 发生换行,我就可以发生效果了(垂直方向上的效果)

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

align-content:flex-start;

Css3 弹性盒子(Flex box)_第12张图片
Paste_Image.png

align-content:flex-end;

Css3 弹性盒子(Flex box)_第13张图片
Paste_Image.png

align-content:center;

Css3 弹性盒子(Flex box)_第14张图片
Paste_Image.png

align-content:space-between;

Css3 弹性盒子(Flex box)_第15张图片
Paste_Image.png

align-content:space-around;

Css3 弹性盒子(Flex box)_第16张图片
Paste_Image.png

在我身体里,我想控制谁就控制谁

  • align-self:flex-start | flex-end | center | baseline | stretch
    这里对4个子元素,分别应用了不同的属性值
    Css3 弹性盒子(Flex box)_第17张图片
    Paste_Image.png

我的大小你做主

flex:按比例写 (1:1:1:1)比例值,分别写进对应的元素中.
这里 的比例为1:2:1:2 .从分配的宽度就可以看出

Css3 弹性盒子(Flex box)_第18张图片
Paste_Image.png


flex:具体值,没什么意义,可以直接定义宽度


flex:具体值+比例值
Home :分配了200px;
其余的比例都是1;

Css3 弹性盒子(Flex box)_第19张图片
Paste_Image.png


tips :

  • 可以嵌套写 display:flex;
  • 可以结合定位使用哦,但position不要和flex 放在同一个元素里哦

扯了这么多,竟然有点饿了,我先撤退了咯。bye,bye!
希望大家能够监督我,提醒或者鼓励我能够养成坚持写文章的习惯。
如有错误或者疑问,请及时私聊我哦!

你可能感兴趣的:(Css3 弹性盒子(Flex box))