弹性盒子布局(FlexBox布局)

http://www.runoob.com/w3cnote/flex-grammar.html

  1. 什么FlexBox布局?
    弹性盒子模型(The Flexible Box Module),又叫Flexbox,意为“弹性布局”,旨在
    通过弹性的方式来对齐和分布容器中内容的空间,使其能适应不同屏幕,为盒装模
    型提供最大的灵活性。
    FlexBox布局更多的用到移动端,PC端除了盒子模型布局,也支FlexBox布
    局 , FlexBox布局将会是成为未来开发的主流技术,将在移动端体现的最明显。

  2. FlexBox布局能够解决的问题
    浮动布局
    各种机型屏幕的适配
    水平和垂直居中
    自动分配宽度

  3. Flex布局的思想
    主轴
    侧轴(交叉轴)

    93.png

    容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。
    主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。
    项目默认沿主轴排列,单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

  4. 结论:主轴的方向 与 父容器中 item 的排列方向 一致

  5. PC指定盒子为FlexBox布局
    display:flex;

  6. FlexBox的常用属性

    6-1. 容器属性

一、flex-direction

     flex-direction : row | row-reverse | column | column-reverse

     该属性:规定了主轴的方向(父容器中item的排列方向)。

     row:主轴为水平方向,起点在左端。

     row-reverse:主轴为水平方向,起点在右端。

    column(默认值):主轴为垂直方向,起点在上沿。

    column-reverse:主轴为垂直方向,起点在下沿。

    column-reverse:主轴为垂直方向,起点在下沿。

二、justify-content

 justify-content: flex-start | flex-end | center | space-between | space-around

 规定:子item在主轴方向的对齐方式

 flex-start(默认值):伸缩项目向一行的起始位置靠齐。

 flex-end:伸缩项目向一行的结束位置靠齐。

 center:伸缩项目向一行的中间位置靠齐。

 space-between:两端对齐,项目之间的间隔都相等。

 space-around:伸缩项目会平均地分布在行里,两端保留一半的空间。

下图灰色为背景,主轴方向为水平,侧轴方向为垂直:

96.png

三、align-item

 align-items : flex-start | flex-end | center | baseline | stretch

规定:子item在侧轴方向的对齐方式

flex-start:交叉轴的起点对齐。

flex-end:交叉轴的终点对齐 。

center:交叉轴的中点对齐。

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

stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

下图灰色为背景,主轴方向是水平,侧轴方向是垂直

97.png

四、flex-wrap

flex-wrap : nowrap | wrap | wrap-reverse

默认情况下,项目都排在一条线(又称"轴线")上。

flex-wrap属性定义,如果一条轴线排不下,如何换行。

nowrap(默认值):不换行

wrap:换行,第一行在上方

wrap-reverse:换行,第一行在下方。(和wrap相反)

6-2. 元素属性

一、flex

  flex是 “flex-grow”、“flex-shrink”和“flex-basis”三个属性的缩写 ,
  参数一:定义项目的放大比例;
  参数二:定义了项目的缩小比例;
  参数三:定义了在分配多余空间之前,项目占据的主轴空间。
  其中第二个和第三个参数(flex-shrink、flex-basis)是可选参数。

  flex默认值为“0 1 auto ”。

案例:
权重分别:1,1,1
flex:1

102.png

权重分别:1,3,1
flex:1 flex:3 flex:1

102.png

二、align-self

 align-self : align-self: auto | flex-start | flex-end | center | baseline | stretch;


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

相关阅读更多精彩内容

  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,854评论 0 26
  • 前段时间接手了一个基于cef1的项目,由于其特别限定的场景,在查询了对html5的支持后,整站都采用了flexbo...
    JSoon阅读 12,485评论 1 10
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,777评论 0 6
  • 作者: 阮一峰日期: 2015年7月10日原文链接:http://www.ruanyifeng.com/blog/...
    Mike_Gu阅读 1,058评论 0 6
  • 时光如洪水猛兽一去不回头,只留得我们在苍白热烈的日子里独自缅怀。 我们知道那些熬夜刷题的日子再也回不来了,无论那时...
    锦然阅读 340评论 0 0

友情链接更多精彩内容