CSS积累Web前端之路让前端飞

CSS中的布局详解(三):flex布局

2017-09-30  本文已影响95人  闰土在流浪

Flex布局又名弹性布局,相比float+position布局,具有很强大的灵活性,而且目前已经得到了所有浏览器的兼容。

个人认为flex布局非常灵活好用,所以这里参考了阮一峰老师的flex教程以及NEXT课程中的文档,把flex布局的所有属性知识点自己动手实现一遍并总结。

Flex布局的使用

如果想要使用Flex布局,首先需要给容器指定Flex布局。

display: flex;
display: inline-flex; //行内元素也可使用
display: -webkit-flex //Webkit浏览器内核需要加上前缀

在使用了flex布局之后,float,clear,vertical-align将失效。

Flex布局的基本概念

flex布局中,有两个基本概念:

如图所示(图片来源网络):


由图可见,容器中有两根主轴:

在容器中,项目默认沿着主轴排列,单个项目占据主轴空间叫做(main size),占据的交叉轴空间叫做(cross size)。

容器(flex container)的属性

容器属性有6个:

1. flex-direction

2. flex-wrap

3.flex-flow

.box {
  flex-flow: <flex-direction> || <flex-wrap>;
}

4. justify-content

5. alien-items

alien-items定义item在交叉轴上如何对齐(此时交叉轴方向为从上至下),有5个值:

6.align-content

align-content定义了多跟轴线的对齐方式,如果item只有一根轴线,该属性不起作用,有6个值:

item(子元素)的属性

item的属性有6个:

.item6{
    order:6
}
//以此类推

*flex-grow:定义item的放大比例,默认为0,也就是如果有剩余空间,也不放大。
例如:
设置item1的flex-grow属性为2,其余为默认值。

.item1{
    flex-grow:2;
}
.item {
    flex-shrink:0;
}
.item5 {
    flex-basis:150px;
}
item5 {
    flex : flex: 2 2 10%;
}

参考资料:

我的个人博客:http://chronosblog.top
我的微信公众号:runtustory

CSS布局详解系列笔记索引:

上一篇 下一篇

猜你喜欢

热点阅读