Flex布局语法与实践
2016-03-07 21:07
288 查看
一、参考文献
阮一峰 Flex布局的语法阮一峰 Flex布局的实践
二、Flex语法
(一)Flex是什么
Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局,行内元素也可以使用Flex布局。采用Flex布局的元素,称为Flex容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称"项目"。
注:设为Flex布局以后,子元素的
float、
clear和
vertical-align属性将失效
(二)Flex容器的属性
flex-direction
flex-wrap
flex-flow
justify-content
align-items
align-content
flex-direction
row(默认值):主轴为水平方向,起点在左端。
row-reverse:主轴为水平方向,起点在右端。
column:主轴为垂直方向,起点在上沿。
column-reverse:主轴为垂直方向,起点在下沿
flex-wrap
nowrap(默认):不换行。
wrap:换行,第一行在上方。
wrap-reverse:换行,第一行在下方。
flex-flow
是flex-direction属性和
flex-wrap属性的简写形式,默认值为
row nowrap。
justify-content
定义了项目在主轴上的对齐方式。flex-start(默认值):左对齐
flex-end:右对齐
center: 居中
space-between:两端对齐,项目之间的间隔都相等。
space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
align-items
定义项目在交叉轴上如何对齐。flex-start:交叉轴的起点对齐。
flex-end:交叉轴的终点对齐。
center:交叉轴的中点对齐。
baseline: 项目的第一行文字的基线对齐。
stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
align-content
定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用flex-start:与交叉轴的起点对齐。
flex-end:与交叉轴的终点对齐。
center:与交叉轴的中点对齐。
space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
stretch(默认值):轴线占满整个交叉轴。
(三)Flex项目的属性
order
flex-grow
flex-shrink
flex-basis
flex
align-self
order
定义项目的排列顺序。数值越小,排列越靠前,默认为0。flex-grow
定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
如果所有项目的
flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的
flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。
flex-shrink
定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。如果所有项目的
flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的
flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。
负值对该属性无效。
flex-basis
定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。
它可以设为跟
width或
height属性一样的值(比如350px),则项目将占据固定空间。
flex
是flex-grow,
flex-shrink和
flex-basis的简写,默认值为
0 1 auto。后两个属性可选。
该属性有两个快捷值:
auto(
1 1 auto) 和 none (
0 0 auto)。
建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。
align-self
align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖
align-items属性。默认值为
auto,表示继承父元素的
align-items属性,如果没有父元素,则等同于
stretch。
该属性可能取6个值,除了auto,其他都与align-items属性完全一致。
.item { align-self: auto | flex-start | flex-end | center | baseline | stretch; }
三、Flex实践
(包含各种常用布局的完美解决,可以借鉴)参考文献:阮一峰 Flex布局的实践
骰子的布局
网格布局
圣杯布局:圣杯布局(Holy Grail Layout)指的是一种最常见的网站布局。页面从上到下,分成三个部分:头部(header),躯干(body),尾部(footer)。其中躯干又水平分成三栏,从左到右为:导航、主栏、副栏。
输入框布局:在输入框的前方添加提示,后方添加按钮
悬挂式布局:主栏的左侧或右侧添加一个图片栏
固定底栏:页面内容太少,无法占满一屏的高度,底栏就会抬高到页面的中间。这时可以采用Flex布局,让底栏总是出现在页面的底部
流式布局:每行的项目数固定,会自动分行。
(完)
相关文章推荐
- hadoop 集群 加入一个新的存储节点和删除一个计算节点需要刷新集群状态命令
- 表格布局
- Qt-----搭建Qt开发环境
- acm480
- BCB实现 Hmac_sha1算法源码
- HDU 1027 A - 怎么了【全排列】
- 静态和实例
- 电商系统Broadleaf文档翻译(四) - 应用架构组件视图application architecture component view
- 一起看代码来玩玩QT之20 Thread(线程)
- Hibernate映射组件属性(一)
- Windows2000/Windows7/Windows8系统的网卡(MAC地址)更改方法
- 用户代理检测
- 简单工厂与策略模式
- percona-toolkit检查主从一致性
- 榆神的密码
- Webpack 学习笔记
- 软件工程个人作业01
- CodeForces 634A-Island Puzzle【找规律】
- ubuntu防火墙设置
- POJ 1631 —— Bridging signals 最长上升子序列