前端的学习-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;
}
相关推荐
Rock_yzh4 分钟前
LeetCode算法刷题——49. 字母异位词分组
数据结构·c++·学习·算法·leetcode·职场和发展·哈希算法
Wayfreem7 分钟前
Spring AI Alibaba 学习之最简单的快速入门
人工智能·学习·spring
再玩一会儿看代码7 分钟前
Ken的Java学习之路——Java中关于面向对象
java·开发语言·经验分享·python·学习
万少16 分钟前
HarmonyOS preview 预览文件 Kit 的入门讲解
前端
IT_陈寒26 分钟前
JavaScript 性能优化实战:我从 V8 源码中学到的 7 个关键技巧
前端·人工智能·后端
jenchoi41343 分钟前
软件供应链npm/pypi投毒预警情报【2025-11-09】
前端·安全·web安全·网络安全·npm·node.js
艾小码1 小时前
别再只会用默认插槽了!Vue插槽这些高级用法让你的组件更强大
前端·javascript·vue.js
JaguarJack1 小时前
CSS 也要支持 if 了 !!!CSS if() 函数来了!
前端·css
恋猫de小郭1 小时前
Flutter 3.38 发布,快来看看有什么更新吧
android·前端·flutter
Pluchon2 小时前
硅基计划6.0 伍 JavaEE 网络原理
网络·网络协议·学习·tcp/ip·udp·java-ee·信息与通信