Flex布局笔记

作者:故事我忘了
个人微信公众号:程序猿的月光宝盒

布局原理

flex是flexible box 的缩写,意为"弹性布局",用来为盒子状模型提供最大的灵活性,任何一容器都可以指定flex布局

当父元素是flex布局后, 子元素的float,clear,vertical-align失效

伸缩布局=弹性布局=伸缩盒布局=弹性盒布局=flex布局

采用flex布局的元素,成为flex容器,简称容器,他的所有子元素自动成为容器成员,成为flex项目,简称项目

子容器可以横向和竖向排列

总结:通过给父元素添加flex布局属性,来控制子盒子的位置和排列方式

父项常见属性

有6个属性

1.flex-direction:设置主轴的方向

主/侧轴:行/列,x/y轴

默认主轴:x往右 ➡

默认侧轴:y向下 ⬇

这个属性会设置主轴的方向(项目的排列方向)

属性值:

图片

2.justify-content:设置主轴上的子元素排列方式

这个属性定义额项目在主轴上的对齐方式

Tips:使用这个属性之前一定要先设置主轴(默认x➡)

图片

3.flex-wrap:设置子元素是否换行

默认情况下,项目都在一条(轴)线上,由flex-wrap属性定义,flex布局中默认是不换行的

图片

4.align-content:设置侧轴上的子元素排列方式(多行)

1.只能用于子项出现换行的情况(多行),在单行下是没有效果的

  1. 图片

5.align-items:设置侧轴上的子元素排列方式(单行)

1.这个属性控制子项在侧轴(默认⬇)上的排列方式,在子项为单项的时候使用

图片

2.拉伸的时候子元素不能给高度

3.align-content和align-items的区别

1.align-items单行,只有上/下/居中和拉伸

2.align-content多行,可以设置上/下/居中/拉伸以及平均分配剩余空间等

单行找align-items,多行找align-content

6.flex-flow:复合属性,相当于同时设置了flex-direction和flex-wrap

flex-flow: row wrap;

子项常见属性

1.flex属性

定义子项目分配剩余空间,用flex来表示占多少分数

2.align-self 控制子项自己在侧轴上的排列方式

允许单个项目有与其他不一样的对齐方式,可覆盖align-items属性

默认值为auto,表示继承父元素的align-items.如果没有父元素,等同于stretch(拉伸)

3.order排列顺序

数字越小,排列越前,默认为0

Tips:和z-index不一样

原文地址:https://www.cnblogs.com/jsccc520/p/13880489.html