前端知识梳理-3/CSS3动画/flex布局

Flex 布局

//也称为弹性布局,是为了适应不同的屏幕尺寸和不同的设备类型二提出的一种布局方式。

基本概念

上图是一个横向的,文本流从左到右的弹性布局图示。这里有几个概念

  • 弹性容器(Flex container), 指一个声明为 flex 或者 inline-flex 的元素,是所有 Flex items 的父元素。
  • 弹性项目(Flex item), 指 flex 容器内的直接孩子元素;弹性容器中的直接文本项默认为匿名弹性项目。
  • 主轴(main axis)和侧轴(cross axis), 类似于二维中的 X 轴和 Y 轴,主轴由属性 flex-direction 来定义,与主轴垂直的轴则是侧轴。

定义弹性布局

要使用弹性布局,需要定义一个弹性容器(Flex container),通过声明 display 属性为 flex 或者 inline-flex 来将此元素定义为弹性容器。

<figure class="highlight css" style="display: block; margin: 20px 0px; overflow: auto; padding: 15px; font-size: 13px; color: rgb(77, 77, 76); background: rgb(247, 247, 247); line-height: 1.6; font-family: lato, "pingfang sc", "microsoft yahei", sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;">

|

<pre style="overflow: auto; font-family: consolas, Menlo, "pingfang sc", "microsoft yahei", monospace; font-size: 13px; margin: 0px; padding: 1px 20px 1px 1px; color: rgb(102, 102, 102); background: rgb(247, 247, 247); line-height: 1.6; border: 0px; text-align: right;">1
2
3
</pre>

|

<pre style="overflow: auto; font-family: consolas, Menlo, "pingfang sc", "microsoft yahei", monospace; font-size: 13px; margin: 0px; padding: 1px; color: rgb(77, 77, 76); background: rgb(247, 247, 247); line-height: 1.6; border: 0px;">.flex {
display: flex
}
</pre>

|

</figure>

弹性容器的属性

  • flex-direction 定义排列的方向
    • row 默认值,主轴为水平,从左向右排列
    • row-reverse 主轴为水平,从右向左排列
    • column 主轴为垂直方向,从上向下排列
    • column-reverse 主轴为垂直方向,从下向上排列
  • flex-wrap 定义是否新行显示,以及新行的排列方向
    • nowrap 默认值,显示在同一行,不换行
    • wrap 一行显示不了时使用新行显示
    • wrap-reversewrap,但是从下向上显示
  • flex-flowflex-directionflex-wrap 的简写方式
    • 使用方法 flex-flow: <‘flex-direction’> || <‘flex-wrap’>
    • 默认值为: row nowrap
  • justify-content 定义弹性项目在主轴上的对齐方式
    • flex-start 默认值,从起始位置对齐,通常为左对齐
    • flex-end 从结束位置对齐,通常为右对齐
    • center 居中对齐
    • space-between 两端对齐,平均间隔
    • space-around 每个子元素都有相等的外边距,相邻元素外边距不会叠加
  • align-items 定义弹性项目在侧轴上的对齐方式
    • stretch 默认值,弹性项目在没指定高度或者高度为 auto 的情况下,则高度会占满空间
    • flex-start 侧轴起点开始对齐
    • flex-end 从侧轴结束位置对齐
    • center 相对侧轴居中对齐
    • baseline 与基线对齐
  • align-content 定义多行在侧轴的对齐方式,当只有一行时,不起作用
    • stretch 默认值,各行会伸展以占满整个纵轴空间
    • flex-start 对齐到纵轴起点
    • flex-end 对齐到纵轴终点
    • center 相对纵轴中间对齐
    • space-between 各行相对纵轴两端对齐,各行间隔相等
    • space-around 各行都有相等的外边距,各行的外边距不会叠加

弹性项目的属性

  • flex-grow 数字,定义弹性项目的放大比例,默认 0
  • flex-shrink 数字,定义弹性项目的缩小比例,默认 1,值 0 表示不缩小
  • flex-basis 数字,定义弹性项目的默认尺寸,
  • flexflex-grow flex-shrink flex-basis 的缩写,默认值为 0 1 auto
  • align-self 定义此弹性项目本身的对齐方式,会覆盖弹性容器 align-items 定义的对齐方式
    • auto 从弹性容器继承
    • stretch 弹性项目在没指定高度或者高度为 auto 的情况下,则高度会占满空间
    • flex-start 侧轴起点开始对齐
    • flex-end 从侧轴结束位置对齐
    • center 相对侧轴居中对齐
    • baseline 与基线对齐
  • order 数字,定义弹性项目的显示顺序,数字越小越靠前

CSS3动画

https://segmentfault.com/a/1190000006699023

阮一峰flex布局

http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

通关小游戏你就等于学会flex啦~

http://flexboxfroggy.com/#zh-cn
http://www.flexboxdefense.com/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 10,156评论 0 26
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 8,941评论 0 6
  • flex布局基础知识 main axis(主轴): Flex容器的主轴主要用来配置Flex项目。它不一定是水平,这...
    前端小兵阅读 3,456评论 0 1
  • 应用在父元素上-flex box 1.模型 方向 换行 display: flex(盒子模型) 定义父元素为fle...
    林立镇阅读 8,707评论 0 27
  • 原文地址:flex布局语法篇 之前写过一篇关于实现元素居中的博文,我们发现每种布局要求都可以运用flex布局实现。...
    薛普定朗谔克阅读 5,397评论 0 8

友情链接更多精彩内容