flex-layout

flex-layout基于24个栅格布局,与传统栅格化的使用方式类同,但提供了更直观、丰富的布局方式。

flex-item-24
flex-item-12
flex-item-12
flex-item-8
flex-item 自动填充宽度
flex-item-8
flex-item-8
flex-item-8 , flex-offset-8

概述

与传统的栅格化一样,flex-layout基于[容器] (相当于Bootstrap的row) 和[栅格] (相当于Bootstrap的column) 来布局:

  1. [容器]有两种:

    flex-column: 容器里的[栅格]以横向排列,与传统栅格化的row一样
    flex-row: 容器里的[栅格]以竖向排列,就像header、content、footer的排列一样

  2. 通常,只有[栅格]可以直接放在[容器]中,而你的内容应该放在[栅格]里。但这不是必须的,直接把内容放在[容器]里也没问题。
  3. 如果一个[容器]里包含的[栅格]超过24格,多出的部分将另起一行。
  4. IE的话只兼容IE10+,其他主流浏览器都支持,具体可以看:兼容性
  5. Flexbox有主轴,副轴的概念,flex-layout已经封装好了,你不需要懂得flexbox,也无需针对不同轴使用不同的class。
    不过,如果你对Flexbox有所了解的话,用起来会更顺手,推荐阮一峰的Flex 布局教程
  6. 与Bootstrap等栅格化不同的是:flex-layout不需要container,栅格本身不自带padding。

优势

flex-layout解决了css布局的不少问题,这里所说的大多在下面的Example里可以看到:

  1. 应用一个class就可以垂直居中。
  2. 轻松实现多栏同高。
  3. 自动计算间距,实现等宽布局,不需要再计算margin。
  4. 支持自动填充剩余宽度,以往我们需要通过触发BFC来实现。
  5. 支持自动填充剩余高度,比如将footer置于底部。
  6. 随意调整[栅格]顺序,比如让main比sidebar提前渲染出来。
  7. 丰富的对齐方式:上、下、左、右、左上、右上、左下、右下。

用法

flex-middle 垂直居中 flex-center 水平居中

这两个class应用在[容器]上时,所有子flex-item都会垂直或水平居中。也可以单独应用在[栅格]上,使特定栅格居中对齐。

无论是多行还是单行,都可以垂直居中
无论是多行还是单行,都可以垂直居中
flex-offset-* 向左偏移

这个class应用在[栅格]上,指定[栅格]向左偏移多少格。

flex-item-8
flex-item-8, flex-offset-8
flex-item-8, flex-offset-16
flex-order-* 排序

这个class应用在[栅格]上,order越小排在越前面。

flex-order-4
flex-order-3
flex-order-2
flex-order-1
flex-left 左对齐 flex-right 右对齐

这两个class应用在[容器]上时,所有子flex-item都会左右对其。也可以单独应用在[栅格]上。

左对齐
左对齐
左对齐
右对齐
右对齐
右对齐
左对齐
右对齐
左对齐
右对齐
左对齐
右对齐
flex-top 顶部对齐 flex-bottom 底部对齐

这两个class应用在[容器]上时,所有子flex-item都会上下对其。也可以单独应用在[栅格]上。

顶部对齐
底部对齐
顶部对齐
底部对齐
顶部对齐
底部对齐
顶部对齐
顶部对齐
底部对齐
顶部对齐
底部对齐
底部对齐
flex-between 等宽对齐

这个class应用在[容器]上,自动调整栅格间距,保持两边间距相同。

等宽对齐
等宽对齐
等宽对齐
等宽对齐
等宽对齐
等宽对齐
等宽对齐
等宽对齐
flex-around 分散排列

这个class应用在[容器]上,与等宽对齐相同,但最左、最右、最上、最下的间距比[栅格]之间的间距大一倍。

分散排列
分散排列
分散排列
分散排列
分散排列
分散排列
分散排列
分散排列
嵌套布局
flex-item
flex-item
flex-item
flex-item
flex-item

响应式

flex-layout提供了基础的响应式功能,当分辨率小于某个阈值时,你可以指定:

  1. [容器]从横向排列变为竖向排列,并且[栅格]宽度为100%
  2. 隐藏指定[栅格]
  3. 显示指定[栅格]
flex-md

这个class应用在[容器]上,当分辨率低于992px的时候,使[容器]变为竖向排列

flex-item
flex-item
flex-item
flex-item
flex-sm

这个class应用在[容器]上,当分辨率低于768px的时候,使[容器]变为竖向排列

flex-item
flex-item
flex-item
flex-item
flex-md-hide

这个class应用在[容器]或[栅格]上,当分辨率低于992px的时候,隐藏[栅格]或[容器]

flex-item
低于992px则隐藏该栅格
flex-item
flex-item
低于992px则隐藏整个容器
低于992px则隐藏整个容器
flex-sm-hide

这个class应用在[容器]或[栅格]上,当分辨率低于768px的时候,隐藏[栅格]或[容器]

flex-item
低于768px则隐藏该栅格
flex-item
flex-item
低于768px则隐藏整个容器
低于768px则隐藏整个容器
flex-md-show

这个class应用在[容器]或[栅格]上,当分辨率低于992px的时候,显示[栅格]或[容器]

把浏览器窗口调小试试
低于992px的时候出现
低于992px的时候出现
低于992px的时候出现
flex-sm-show

这个class应用在[容器]或[栅格]上,当分辨率低于7682px的时候,显示[栅格]或[容器]

把浏览器窗口调小试试
低于768px的时候出现
低于768px的时候出现
低于768px的时候出现

实例

响应式圣杯布局

main优先显示,宽度低于992px时候main和side-right变为水平排列, side-left隐藏

header
main
side-left
side-right
footer
多栏同高,flex-column默认便是。
sidebar
main
Github 返回顶部