flex.css:移动端 flex 布局

flex.css 快速布局

什么是 flex.css

css3 flex 布局相信很多人已经听说过甚至已经在开发中使用过它,flex.css 就是对 flex 布局的一种封装,通过简洁的属性设置就能使得它完美的运行在移动端的各种浏览器,甚至能运行在 ie10+ 的各种PC端浏览器中。它天然的能够很好的将页面布局和css进行分离,让 css 专注于元素的显示效果,我称之为声明式布局。

为什么需要 flex.css

引用 flex.css github地址的说明:
“在移动端开发中,并不是所有的浏览器,webview,微信等各种版本都支持标准的flex,
但是基本上都会支持-webkit-box,所以flex.css的主要作用是保证每一个属性都能支持标准flex或旧版本的-webkit-box。
由于flex.css采用了autoprefixer编译,所以能够保证在浏览器不支持标准flex布局的情况下,
回滚到旧版本的-webkit-box,保证移动设备中能呈现出一样的布局效果。
于是,一款移动端快速布局的神器诞生了...”

npm 安装

npm install flex.css --save
or
yarn add flex.css

flex 和 data-flex

flex.css 有两个版本,一个是 flex.css,一个是 data-flex.css,这两个版本其实是一样的,唯一的区别是,一个是使用 flex 属性设置,一个是使用 data-flex 属性设置。react 不支持 flex 属性直接布局,所以 data-flex.css 实际上是为了 react 而诞生的。如果使用了 webpack 打包,npm安装后,并且配置了 ES6 编译器的话,flex 属性匹配可以直接使用。

使用

引入

import 'flex.css';
or
import 'flex.css/dist/data-flex.css';

*也可在 html 文件中引入 <link rel="stylesheet" href="./flex.css">

直接在元素上添加属性,示例如下:

<!-- flex属性匹配,简单的子元素居中例子: -->
<div flex="main:center cross:center" style="width:500px; height: 500px; background: #108423">
  <div style="background: #fff">看看我是不是居中的</div>
</div>

<!-- data-flex属性匹配,简单的子元素居中例子: -->
<div data-flex="main:center cross:center" style="width:500px; height: 500px; background: #f1d722">
  <div style="background: #fff">看看我是不是居中的</div>
</div>

flex 属性大全

dir:主轴方向
  top:从上到下
  right:从右到左
  bottom:从下到上
  left:从左到右(默认)

main:主轴对齐方式
  right:从右到左
  left:从左到右(默认)
  justify:两端对齐
  center:居中对齐

cross:交叉轴对齐方式
  top:从上到下(默认)
  bottom:从上到下
  baseline:基线对齐
  center:居中对齐
  stretch:高度并排铺满

box:子元素设置
  mean:子元素平分空间
  first:第一个子元素不要多余空间,其他子元素平分多余空间
  last:最后一个子元素不要多余空间,其他子元素平分多余空间
  justify:两端第一个元素不要多余空间,其他子元素平分多余空间

flex-box属性说明:
取值范围(0-10),单独设置子元素多余空间的如何分配,设置为0,则子元素不占用多余的多余空间
多余空间分配 = 当前 flex-box 值/子元素的 flex-box 值相加之和

<h2>两端不需要多余空间,中间占满剩余空间</h2>
<div class="box" flex>
  <div flex-box="0" style="background: gold; width: 50px; height: 50px">1</div>
  <div flex-box="1" style="background: blue; height: 50px">2</div>
  <div flex-box="0" style="background: blue; width: 50px; height: 50px">3</div>
</div>

参考文章

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

推荐阅读更多精彩内容

  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,623评论 0 26
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,514评论 0 6
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,333评论 0 11
  • 环境配置:jdk:JAVA_HOMED:\Java\jdk1.7.0_80path%JAVA_HOME%\bin;...
    季嘉聊跨境阅读 358评论 0 0