Flex 布局中的涉及到的属性

FlexFlexiable box 的缩写, "弹性布局", 属于盒装模型.
每个 flex 布局都可以看做是一个容器, 容器默认有两个轴, 一个是水平的主轴(main axis),一个是交叉轴(cross aixs), 主轴开始的位置叫做main start, 结束的位置叫做main end, 交叉轴开始位置叫做cross start,结束的位置叫做cross end

1.容器的属性

以下有6个属性可以设置在容器上:

* flex-direction
* flex-wrap
* flex-flow
* justify-content
* align-items
* align-content

1.1 flex-direction


flex-direction 决定主轴的方向: row | row-reverse | column | column-reverse


flex-direction.png

1.2 flex-wrap


默认情况下 flex 都排在一行, 但是排不下怎么办呢, flex-wrap 提供了约束换行的属性,它的值有: nowrap | wrap-content | wrap-reverse
nowrap: 不换行
wrap-content: 自然换行, 按照自上到下的顺序重新排列
wrap-reverse: 逆向换行, 新的一行位于原先行的上方

1.3 flex-flow


flex-flow是 flex-direction和 flex-wrap 的合并简写形式, 默认值是 row nowrap

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

1.4 justify-content


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

* flex-start: 左对齐
* flex-end: 右对齐
* center: 居中
* space-between: 两端对齐, 项目之间的间隔都相等
* space-around: 每个项目两侧的间隔相等,所以项目之间的间隔比项目两侧的间隔大一倍
rn-justify.png

1.5 align-items


align-item 定义了项目在交叉轴上的对齐方式

* flex-start: 交叉轴的起点对齐
* flex-end: 交叉轴的终点对齐
* center: 交叉轴的中点对齐
* baseline: 第一行文字的基线对齐
* strech(默认值): 如果项目未设置高度或者设置为 auto,将占满整个屏幕
rn-item-align.png

1.6 align-content


align-content定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

* flex-start: 交叉轴的起点对齐
* flex-end: 交叉轴的终点对齐
* center: 交叉轴的中点对齐
* strech(默认值): 轴线占满整个交叉轴
* space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
* space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。

2.项目的属性


* order
* flex-grow
* flex-shrink
* flex-basis
* flex
* align-self

2.1 order


order 定义项目的排列顺序,数值越小,排列越靠前,默认数值为0

2.2 flex-grow


flex-grow 属性定义项目的放大比例,默认为0, 即使有空间也不会进行放大
相当于 android 中的 weight 属性, 如果项目的 flex-grow 值都为1,

2.3 flex-shrink


flex-shrink定义项目的缩小比例, 默认为1, 如果空间不足时, 会等比例缩小.
如果所有项目的缩小比例都是1, 其中有个为0, 则当空间不足时, 出0的项目,别的都会等比例进行缩小

2.4 flex-basis


flex-basis 属性定义了项目在分配多余的空间之前, 项目占据的主轴空间.默认值为 auto, 即项目的本来大小.

2.5 flex


flex是 flex-grow,flex-shrink和 flex-basis 的简写, 默认值为1 1 auto,
有两个快捷键值: auto 和 none
none, 代表0 0 auto

2.6 align-self


align-self 允许单个项目与其他项目有不同的对齐方式, 可以覆盖父元素的 align-item 属性, 默认值为 auto, 继承父元素的 align-item属性, 若没有父元素, 则默认为 stretch

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

推荐阅读更多精彩内容

  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,637评论 0 26
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,523评论 0 6
  • 学会 Flex 布局 因为它十分简单灵活,区区简单几行代码就可以实现各种页面的的布局,以前我在学习页面布局的时候我...
    V_cc857233阅读 248评论 0 0
  • 一、Flex 布局是什么? CSS3引入了一种新的布局模式——Flexbox布局,即伸缩盒模型布局(Flexibl...
    侠客有情剑无情QAQ阅读 5,816评论 7 94
  • 作者/阿紫 改动/无极 娘一挥手 我就去了远方 我把故乡背上 故乡很沉 有娘种的菜地 有娘望我的那扇小窗 那扇窗口...
    春暖花开6091阅读 653评论 0 0