接触到flex一个多月了,今天做一个学习小结。如果有知识错误或者意见不同的地方。欢迎交流指教。

画外音:先说一下,我是怎么接触到flex布局的。对于正在学习的童鞋们,我建议大家没事可以逛逛网站,看看人家的源代码。至于怎么看?从浏览器已经生成的静态代码看(当然如果该公司的代码在github开源了,那就去github中看吧,也可以fork到自己的托管空间下创建派生自己改着玩。),或者去网站上下一些自己感兴趣的或者差不多效果的代码看。多看demo,多加学习。

一个月前看到国美金融美易理财的界面,网址:m.gomemyc.com/h5/。觉得它的布局很有意思呀,copy到本地,看了一下它的页面代码。发现在列表那边采用了flex方式的布局。然后就开始上网搜呀~ 网络真的是很好的学习工具O(∩_∩)O哈哈哈~

当时很仔细的看了

1.阮一峰的Flex布局教程:语法篇和实例篇。(写于2015年7月)

语法篇网址http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

实例篇网址http://www.ruanyifeng.com/blog/2015/07/flex-examples.html?bsh_bid=683103006

2.大漠根据Chris Coyier翻译的《老的flexbox和新的flexbox》和《使用CSS3 Flexbox》(写于2013年5月)

中文网址:http://www.w3cplus.com/css3/old-flexbox-and-new-flexbox.html

英文网址:http://css-tricks.com/old-flexbox-and-new-flexbox

以下是我的学习成果和案例分析。

如果你正在学习flex或者看了这篇文想要学习flex,那么我建议可以好好看看阮大神的文章。我的学习成果主要基于阮大神的文章,精简总结以便于个人查找。而案例分析,则是自己做的demo的实现,用于展示学习。

首先说明一下flex的功能。flex是Flexible Box的缩写,它是一种弹性布局的方式,更多的用在屏幕尺寸大小一大,网页需要适应不同尺寸的屏幕上。Flexbox可以让元素在容器(伸缩容器)中扩展和收缩,从而达到调整整个布局的响应效果。需要注意的一点是,flex布局后,子元素的float、clear、vertical-align属性都会失效。如图1 Flex布局容器展示图。

如图1 Flex布局容器展示图

介绍:采用Flex布局的元素,称为Flex容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称"项目"。

容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

flex属性

flex-direction  决定主轴方向

flex-wrap     默认情况下,项目都在一条线上,定义如何换行。

flex-flow     上述的简写,默认row nowrap。

justify-content   项目在主轴上的对齐方式

align-items      项目在交叉抽上如何对齐

align-content    多根轴线的对齐方式

①  .box{flex-derection: row | row-reverse | column | column-reverse;}

row:主轴方向从左到右 。

row-reverse:主轴方向从右到左 。

column:交叉轴方向从上到下。

column-reverse:交叉轴方向从下到上。

案例:

②  .box{flex-wrap: nowrap | wrap | wrap-reverse;}

nowrap: 默认不换行

wrap: 换行,第一排在上方

wrap-reverse:换行,第一排在下方

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

④ .box{justify-content: flex-start |flex-end | center | space-between | space-around;} 

flex-start: 左对齐

flex-end:右对齐

center:居中

space-between:两端对齐,中间间隔

space-around:四周环绕,中间间隔大于item与边界间隔。

⑤ .box{align-items: flex-start | flex-end | center |baseline | stretch ;}

flex-start:交叉轴起点

flex-end :交叉轴终点

center:交叉轴中点

baseline :项目的第一行文字的基线对齐

stretch :默认,如果项目未设置高或auto,将占满整个容器。

⑥ .box{align-content: flex-start | flex-end | center | space-between |space-around | str }

flex-start:与交叉轴起点对齐

flex-end:与交叉轴终点对齐

center:与交叉轴中点对齐

space-between:两端对齐,中间间隔

space-around:四周环绕,中间间隔大于item与边界间隔。

stretch:默认,如果项目未设置高或auto,将占满整个容器。

未完待续。

flex学习小结的更多相关文章

  1. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  2. react学习小结(生命周期- 实例化时期 - 存在期- 销毁时期)

    react学习小结   本文是我学习react的阶段性小结,如果看官你是react资深玩家,那么还请就此打住移步他处,如果你想给一些建议和指导,那么还请轻拍~ 目前团队内对react的使用非常普遍,之 ...

  3. objective-c基础教程——学习小结

    objective-c基础教程——学习小结   提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织:XCode使用介绍) ...

  4. pthread多线程编程的学习小结

    pthread多线程编程的学习小结  pthread 同步3种方法: 1 mutex 2 条件变量 3 读写锁:支持多个线程同时读,或者一个线程写     程序员必上的开发者服务平台 —— DevSt ...

  5. ExtJs学习笔记之学习小结LoginDemo

    ExtJs学习小结LoginDemo 1.示例:(登录界面) <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  6. 点滴的积累---J2SE学习小结

    点滴的积累---J2SE学习小结 什么是J2SE J2SE就是Java2的标准版,主要用于桌面应用软件的编程:包括那些构成Java语言核心的类.比方:数据库连接.接口定义.输入/输出.网络编程. 学习 ...

  7. 【转】【Flex】FLEX 学习网站分享

    [转:http://hi.baidu.com/tanghecaiyu/item/d662fbd7f5fbe02c38f6f764 ] FLEX 学习网站分享 http://blog.minidx.co ...

  8. (转) Parameter estimation for text analysis 暨LDA学习小结

    Reading Note : Parameter estimation for text analysis 暨LDA学习小结 原文:http://www.xperseverance.net/blogs ...

  9. dubbo学习小结

    dubbo学习小结 参考: https://blog.csdn.net/paul_wei2008/article/details/19355681 https://blog.csdn.net/liwe ...

随机推荐

  1. COLLATE匹配两表数据

    MesOrd.MesNO COLLATE Chinese_Taiwan_Stroke_CI_AS = ErpSO.SoNO

  2. ES5概述(ECMAScript262/5.1)

    ES5概述(ECMAScript262/5.1) 本文参考:ES5概述 ECMAScript 是基于对象的: 基本语言和宿主设施都由对象提供,ECMAScript 程序是一组可通信的对象.ECMASc ...

  3. JavaScript中‘this’关键词的优雅解释

    本文转载自:众成翻译 译者:MinweiShen 链接:http://www.zcfy.cc/article/901 原文:https://rainsoft.io/gentle-explanation ...

  4. 深化管理、提升IT的数据平台建设方案

    谈到信息化,每个企业有每个企业的业务模式,每个企业有每个企业不同的思考.落地有效的信息化建设一定紧跟着企业的发展,围绕业务和管理,来提升效率,创造价值. 对于企业如何在发展的不同阶段提升信息化建设,这 ...

  5. 如何安装Genymotion虚拟机以及Genmotion的eclipse插件

    ---内容开始--- - 首先去genymotion的官网去下载其安装文件 资源下载 Genymotion官网必须注册一个账号这个账号安装之后还有用的,用户名最好用网易126邮箱注册----我下载的是 ...

  6. 存储过程 保存 xml 数据

    示例: .net DataSet ds=.... string xml = ds.GetXml();xml = xml.Replace("'","''"); S ...

  7. xml类型使用注意事项

    xml 的数据类型在平常的开发也是很常用的,燃鹅.也是有一些地方需要留意.今天我就分享几个测试的例子. 使用 xquery.exist (有但不仅仅限于)的注意事项.通常使用来判断节点是否存在,值是否 ...

  8. 3.awk数组详解及企业实战案例

    awk数组详解及企业实战案例 3.打印数组: [root@nfs-server test]# awk 'BEGIN{array[1]="zhurui";array[2]=" ...

  9. 使用python的Flask实现一个RESTful API服务器端[翻译]

    最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了. 本文将会使用python的Flask框架轻松实现一个RESTful的服务 ...

  10. 基于面向对象的图片轮播(js原生代码)

    无论你想走多远,你都需要不断地走下去.前端最精华的便是原生的js,这也是我们前端工程师的技术分层的重要指标,也提现这你的代码能力,开发的水平.废话不多说,进入今天的主要分享————基于面向对象思想的图 ...