前端的学习-CSS(二)-弹性盒子-flex

一:子元素的属性

order:项目的排列顺序,数值越小,排列越靠前,默认为0。

flex-grow:定义项目的放大比例,默认为 0 ,即如果存在剩余空间,也不放大。

flex-shrink:属性定义了项目的缩小比例。

flex-basis::在分配多余空间之前,项目占据的主轴空间。

align-self:允许单个项目有与其他项目不一样的对齐方式。

1:order项目排列顺序

order:项目的排列顺序,数值越小,排列越靠前,默认为0。

css 复制代码
.item {
    order: 属性值;
}

现在给1号盒子设置order:3;这将使1号盒子排在最后面。如下

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>弹性布局</title>
		<style type="text/css">
			.main-box {
				width: 800px;
				height: 300px;
				background-color: aquamarine;
				margin: 0 auto;
				/* 设置弹性盒子 */
				display: flex;
				/* 设置交叉轴方向 */
				align-items: stretch;
				flex-wrap: wrap;
				align-content: stretch;
			}

			.main-box>div {
				width: 100px;
				/* height: 50px; */
				border: 1px solid red;
				font-size: 20px;
				color: #000;
			}

			.main-box>.box1 {
				order: 3;
			}
		</style>
	</head>
	<body>
		<div class="main-box">
			<div class="box1">1</div>
			<div class="box2">2</div>
			<div class="box3">3</div>
		</div>
	</body>
</html>
2:flex-grow项目放大比例

flex-grow:定义项目的放大比例,默认为 0 ,即如果存在剩余空间,也不放大。

现在给1号盒子设置flex-grow:2;效果如图。

如果所有项目的 flex-grow 属性都为1,则它们将等分剩余空间。如果一个项目的 flex-grow 属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。

css 复制代码
.main-box>.box1 {
		flex-grow: 2;
}
3:flex-shrink项目缩小比例

flex-shrink:属性定义了项目的缩小比例。

如果所有项目的 flex-shrink 属性都为1,当空间不足时,都将等比例缩小。如果一个项目的 flex-shrink 属性为0,其他项目都为1,则空间不足时,前者不缩小。

语法:

css 复制代码
选择器 {
    flex-shrink: number; 
}
css 复制代码
.main-box>.box1 {
	flex-shrink: 1;
}

.main-box>.box2 {
	flex-shrink: 0;
}

.main-box>.box3 {
	flex-shrink: 0;
}
4:flex-basis属性

flex-basis::在分配多余空间之前,项目占据的主轴空间。

flex-basis 属性定义了在分配多余空间之前,项目占据的主轴空间。它的默认值为 auto ,即项目的本来大小。它可以设为跟 width 或 height 属性一样的值,则项目将占据固定空间。

语法:

css 复制代码
选择器{
    flex-basis: 200px;
}
css 复制代码
.main-box>.box1 {
	flex-basis: 200px;
}
5:align-self单个项目对齐方式

align-self 属性允许单个项目有与其他项目不一样的对齐方式,可覆盖 align-items 属性。默认 值为 auto ,表示继承父元素的 align-items 属性,如果没有父元素,则等同于 stretch 。

css 复制代码
选择器 {
    align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
css 复制代码
.main-box>.box1 {
	align-self: flex-end;
}
css 复制代码
.main-box>.box1 {
	align-self: center;
}
相关推荐
旧厂街小江5 分钟前
LeetCode 第111题:二叉树的最小深度
前端·算法·程序员
&白帝&6 分钟前
vue实现大转盘抽奖
前端·javascript·vue.js
DataFunTalk9 分钟前
不是劝退,但“BI”基础不佳就先“别搞”ChatBI了!
前端·后端
古德奈特13 分钟前
npm 和 npx 的区别详解
前端
big凉笙墨染15 分钟前
Web安全小白看不懂HTTP协议?一文带你精通HTTP基础知识,Web安全入门必读【娱乐篇】
前端·安全·黑客
Riesenzahn15 分钟前
使用CSS3+SVG绘制沿固定路径飞行的纸飞机
前端·javascript
打野赵怀真17 分钟前
请说说在Angular中的自举是什么?
前端·javascript
LaoZhangAI26 分钟前
【2025最新】Dify接入GPT-4o完全指南:8种稳定高效使用方法
前端·后端
逻辑星辰29 分钟前
LogicFlow-前端流程图开发
前端·vue·流程图·logicflow
Direct_Yang33 分钟前
计算机网络学习前言
学习·计算机网络