Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

flex 布局 #5

Open
oyyf1123 opened this issue Jul 6, 2019 · 0 comments
Open

flex 布局 #5

oyyf1123 opened this issue Jul 6, 2019 · 0 comments

Comments

@oyyf1123
Copy link

oyyf1123 commented Jul 6, 2019

弹性盒布局 / 弹性盒模型 / flex 布局 ...

弹性盒的作用:

解决元素的排列问题(移动端或者流式布局)排排坐吃果果。

弹性盒的兼容问题:

  1. 弹性盒子在IE中有一小部分的兼容不同,在其他浏览器也是如此,需要加上前缀

  2. 弹性盒有两个版本display:box; display:flex; 有的浏览器只支持box版本,开发新版本之后利用autoprefixer工具来处理兼容。

注意,使用了弹性盒子之后,盒模型就变成了弹性盒模型了,就和标准盒模型有很多区别了,又成一个体系。

弹性盒语法学习

参考文献

下图是弹性盒模型的图片

弹性盒模型

因为我们要解决的是子元素在父元素中的排列问题,所以弹性盒使用的第一步就是为父元素添加 display:flex; 属性,添加之后,父元素就变成弹性父元素,里面的子元素变成了弹性子元素(跟后代无关), 而且弹性子元素还可以添加 display:flex变成弹性父元素 ...

弹性盒模型中我们要明白几个新概念,弹性盒模型形成之后,伴随着会生成两个轴(主轴和侧轴),元素排列都是按照轴排列,通过控制轴来进行子元素排列

弹性子元素会按照主轴排列,主轴默认的方向是水平方向

还有四个属性:main-start main-end (描述主轴的开始方法和结束方向)cross-start cross-end (描述侧轴的开始方法和结束方向),控制元素排列的时候可以让元素根据某几个点来排列

弹性父元素有这样的几个属性:

  1. flex-direction 调整主轴的方向

    row (主轴水平 默认)、row-reverse (水平,从右边开始)、column (主轴垂直)、column-reverse(垂直 ,从下边开始)

  2. flex-wrap 当子元素的主轴上的尺寸加起来已经超过父元素主轴上的尺寸,控制是否需要换行,不换行需要压缩子元素的尺寸

    no-wrap (不换行 默认) 、wrap (换行)、wrap-reverse (换行并且反转侧轴)

  3. flex-flow 是direction和wrap的复合属性 column

  4. justify-content 控制子元素在主轴上的排列方式

    flex-start (子元素在主轴开始位置排列 默认) 、
    flex-end (子元素在主轴结束位置排列)、
    center (子元素在主轴中间位置排列)、
    space-between (左右两头各一个,中间的隔开排)、
    space-around

  5. align-items 控制子元素在侧轴上的排列方式
    flex-start、flex-end、center、
    baseline ( 子元素在侧轴上以文字基线为标准排列 )、
    stretch ( 子元素没有高度的时候,会扩展子元素的高度到容器。。 )

  6. align-content 控制换行之后,多个行之间的排列方式
    stretch( 子元素没有高度的时候,会扩展子元素的高度到容器。。 )、
    flex-start、
    flex-end、
    center、
    space-between
    space-around

弹性子元素有这样的几个属性:

  1. order 给子元素排序

    子元素默认值为0,当子元素的order值相同的时候,排列按照html的顺序排, order值小的排前面

  2. flex-grow 控制子元素占用剩余空间

    默认值为0,

    子元素的占用 = 全部剩余空间 / 所有子元素的flex-grow的值 * 当前子元素的flex-grow

  3. flex-shrink 决定某个子元素相对于其他普通子元素的收缩大小。

    默认值为 1,如果设置为0,则不收缩。

    子元素的收缩 = 全部超出空间 / 所有子元素的flex-shrink的值 * 当前子元素的flex-shrink

  4. flex 是flex-grow 和 flex-shrink的符合属性

    flex: 1 1;

  5. align-self 控制单个的子元素脱离其他的子元素自己在侧轴方向上的排列方式

    值就是align-items的值

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant