flex弹性布局:教你从不同的思维方式来理解什么叫弹性布局

display: flex; // 用于开启弹性布局

在开始flex弹性布局的学习之前,我们需要先来了解这样几个概念:

  • 弹性容器
  • 弹性项目
  • 主轴
  • 交叉轴

目录

1.弹性容器

2.弹性项目

3.主轴

4.交叉轴

5.弹性设置

6.交流


1.弹性容器

定义:给谁设置了display: flex; 谁就是弹性容器

<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<style>
		.box1 {
			background-color: red;
			display: flex;/* 开启弹性布局,成为弹性容器 */
			width: 100px; height: 100px;/* 独占一行,可设置宽高 */
		}
		.box2 {
			background-color: blue;
			display: flex;/* 开启弹性布局,成为弹性容器 */
			width: 100px; height: 100px;/* 独占一行,可设置宽高 */
		}
	</style>
	<title>flex弹性布局</title>
</head>
<body>
	<div class="box1">box1</div>
	<div class="box2">box2</div>
	
</body>
</html>

有什么效果:弹性容器元素变成块级,独占一行,设置宽高有效

2.弹性项目

定义:弹性容器的亲儿子就是弹性项目

<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<style>
		.box {
			background-color: red;
			display: flex;
		}
		.first {
			background-color: aquamarine;
			width: 30px;height: 100px;/* 弹性项目设置宽高有效 */
			margin: 16px;
		}
	</style>
	<title>flex弹性布局</title>
</head>
<body>
	<div class="box">
		<span class="first"></span>
		<span class="first"></span>
		<span class="first"></span>
		<span class="first"></span>
	</div>
	
</body>
</html>

有什么效果:元素成为弹性项目后,非独占一行,失去原有的流体特性,可设置宽高,没有设置宽高时具有包裹性,可以定位,但是:

        text-align、vertical-align、float、clear清除浮动对其无效

3.主轴

方向默认为水平,从左到右,具有方向性,有厚度(粗细)

4.交叉轴

有了主轴才有交叉轴的概念,交叉轴与主轴垂直,具有方向性,无厚度(粗细)

5.弹性设置

了解了这四种概念之后,现在我们可以来学学如何进行弹性布局

设置说明
在弹性容器上可以附加的相关弹性布局设置(第一个为默认值)
flex-directionrow | row-reverse | column | column-reverse设置弹性容器内主轴方向
flex-wrapnowrap | wrap | wrap-reverse设置弹性容器内是否允许出现多根主轴
flex-flowrow nowrap | 上面两个属性的任意组合对上面两个属性的合并设置,用空格分隔
justify-contentflex-start | flex-end | center | space-between | space-around | space-evenly设置弹性项目在主轴上的对齐方式
align-itemsstretch | flex-start | flex-end | center设置弹性项目在交叉轴方向上的对齐方式
align-contentstretch | flex-start | flex-end | center space-between | space-around | space-evenly设置主轴(可以是一根,也可以是多根)在交叉轴方向上的对齐方式
在弹性项目上可以附加的相关弹性布局设置(第一个为默认值)
order任意正整数设置弹性项目在其主轴上的摆放顺序
align-selfinherit | stretch | flex-start | flex-end | center设置弹性项目在其主轴对应的交叉轴方向上的对齐方式
flex-grow0 | 任意正整数当主轴方向上有剩余空间时,弹性项目如何瓜分剩余空间
flex-shrink1 | 任意正整数当主轴方向上放不下弹性项目时,弹性项目如何缩放
felx-basisauto | 任意其他有效长度单位设置弹性项目以什么值参与计算主轴剩余空间
flex0 1 auto | 上述三个属性的任意组合对上面三个属性的合并设置

6.交流

以上就是我所学习的弹性布局,如果有什么问题的话,可在下方留言。

另:祝前程似锦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值