Skip to content

Flex

Flexible Box 模型,通常被称为 flexbox,是一种一维的布局模型。它给 flexbox 的子元素之间提供了强大的空间分布和对齐能力。

css
* {
	/* 容器属性 8 个 */
	display: 			flex; /* 弹性盒子 */
	align-content: 		flex-start flex-end center space-between space-around stretch; /* 设置行对齐 */
	flex-direction: 	row row-reverse column column-reverse; /* 子元素的排列方式 */
	flex-wrap: 			nowrap wrap wrap-reverse initial inherit; /* 子元素超出父容器时是否换行 */
	justify-content: 	flex-start flex-end center space-between space-around; /* 在主轴(横轴)方向上的对齐方式 */
	align-items: 		flex-start flex-end center baseline stretch; /* 在侧轴(纵轴)方向上的对齐方式 */
	row-gap: 			<length | percentage>; /* 行元素之间的间隙(gutter)大小 */
	column-gap: 		<length | percentage>; /* 列元素之间的间隙(gutter)大小 */

	/* 元素属性 5 个 */
	flex-grow: 			<number [0,∞]>; /* 元素在主轴方向上的增长系数 */
	flex-shrink: 		<number [0,∞]>; /* 元素在主轴方向上的收缩规则 */
	flex-basis: 		<auto | length | content>; /* 元素在主轴方向上的初始大小 */
	order: 				<integer>; /* 元素在布局时的顺序 */
	align-self: 		auto flex-start flex-end center baseline stretch; /* 元素对齐当前 grid 或 flex 行中的元素,并覆盖已有的 align-items 的值 */

	/* 容器属性简写  */
	flex-flow: 			<flex-direction> <flex-wrap>;
	place-items: 		<justify-content> <align-items>;
	gap: 				<row-gap> <column-gap>;

	/* 元素属性简写 */
	flex: 				<flex-grow> <flex-shrink> <flex-basis>;
}
* {
	/* 容器属性 8 个 */
	display: 			flex; /* 弹性盒子 */
	align-content: 		flex-start flex-end center space-between space-around stretch; /* 设置行对齐 */
	flex-direction: 	row row-reverse column column-reverse; /* 子元素的排列方式 */
	flex-wrap: 			nowrap wrap wrap-reverse initial inherit; /* 子元素超出父容器时是否换行 */
	justify-content: 	flex-start flex-end center space-between space-around; /* 在主轴(横轴)方向上的对齐方式 */
	align-items: 		flex-start flex-end center baseline stretch; /* 在侧轴(纵轴)方向上的对齐方式 */
	row-gap: 			<length | percentage>; /* 行元素之间的间隙(gutter)大小 */
	column-gap: 		<length | percentage>; /* 列元素之间的间隙(gutter)大小 */

	/* 元素属性 5 个 */
	flex-grow: 			<number [0,∞]>; /* 元素在主轴方向上的增长系数 */
	flex-shrink: 		<number [0,∞]>; /* 元素在主轴方向上的收缩规则 */
	flex-basis: 		<auto | length | content>; /* 元素在主轴方向上的初始大小 */
	order: 				<integer>; /* 元素在布局时的顺序 */
	align-self: 		auto flex-start flex-end center baseline stretch; /* 元素对齐当前 grid 或 flex 行中的元素,并覆盖已有的 align-items 的值 */

	/* 容器属性简写  */
	flex-flow: 			<flex-direction> <flex-wrap>;
	place-items: 		<justify-content> <align-items>;
	gap: 				<row-gap> <column-gap>;

	/* 元素属性简写 */
	flex: 				<flex-grow> <flex-shrink> <flex-basis>;
}

轴线

两根轴线 — 主轴和交叉轴。主轴由 flex-direction 定义,另一根轴垂直于它。

css
*{
    display: flex;

    flex-direction row; /* 元素的排列方向: row/row-reverse/column/column-reverse */
    flex-wrap: wrap; /* 多行容器: wrap/nowrap */
    flex-flow: <flex-direction> <flex-wrap>; /* 简写属性 */

}
*{
    display: flex;

    flex-direction row; /* 元素的排列方向: row/row-reverse/column/column-reverse */
    flex-wrap: wrap; /* 多行容器: wrap/nowrap */
    flex-flow: <flex-direction> <flex-wrap>; /* 简写属性 */

}

元素的可用空间

css
* {
	flex-grow: 1; /* 按比例分配增长空间: 0/1/2/.../n */
	flex-shrink: 1; /* 按比例分配收缩空间: 0/1/2/.../n */
	flex-basis: auto; /* 元素的空间大小: 设定尺寸/内容尺寸 */
	flex: <flex-grow> <flex-shrink> <flex-basis>; /**简写属性: initial/auto/none/设定值 */
	/* flex: 1 等同于 flex: 1 1 0 */
	/* flex: 2 等同于 flex: 2 1 0 */
	/* flex: initial 等同于 flex: 0 1 auto */
	/* flex: auto 等同于 flex: 1 1 auto */
	/* flex: none 等同于 flex: 0 0 auto */
}
* {
	flex-grow: 1; /* 按比例分配增长空间: 0/1/2/.../n */
	flex-shrink: 1; /* 按比例分配收缩空间: 0/1/2/.../n */
	flex-basis: auto; /* 元素的空间大小: 设定尺寸/内容尺寸 */
	flex: <flex-grow> <flex-shrink> <flex-basis>; /**简写属性: initial/auto/none/设定值 */
	/* flex: 1 等同于 flex: 1 1 0 */
	/* flex: 2 等同于 flex: 2 1 0 */
	/* flex: initial 等同于 flex: 0 1 auto */
	/* flex: auto 等同于 flex: 1 1 auto */
	/* flex: none 等同于 flex: 0 0 auto */
}

元素间的对齐和空间分配

css
* {
	/* 元素在交叉轴方向对齐 */
	align-items: stretch; /* stretch|flex-start|flex-end|center */

	/* 元素在主轴方向上对齐 */
	justify-content: stretch; /* stretch|flex-start|flex-end|center|space-around|space-between */

	/* 简写 */
	place-items: <align-items> <justify-content>; /* auto|normal|inherit|initial|unset|设定值 */
}
* {
	/* 元素在交叉轴方向对齐 */
	align-items: stretch; /* stretch|flex-start|flex-end|center */

	/* 元素在主轴方向上对齐 */
	justify-content: stretch; /* stretch|flex-start|flex-end|center|space-around|space-between */

	/* 简写 */
	place-items: <align-items> <justify-content>; /* auto|normal|inherit|initial|unset|设定值 */
}

网格间距

网格间距是网格轨道之间的间距

css
* {
	row-gap: normal; /** 设定尺寸|inherit|initial|unset|等等 */
	column-gap: normal; /** 设定尺寸|inherit|initial|unset|等等 */
	gap: <row-gap> <column-gap>;
}
* {
	row-gap: normal; /** 设定尺寸|inherit|initial|unset|等等 */
	column-gap: normal; /** 设定尺寸|inherit|initial|unset|等等 */
	gap: <row-gap> <column-gap>;
}

༼ つ/̵͇̿̿/’̿’̿ ̿ ̿̿ ̿̿◕ _◕ ༽つ/̵͇̿̿/’̿’̿ ̿ ̿̿ ̿̿ ̿̿