flex布局

在最近小程序的学习中,几乎都是flex布局,所以趁机会学习一下flex布局~

flex container和flex item:

这两个概念其实很简单,就是一个div里面嵌套多个子div,此时外层的div就可以看作是flex container,而该div下的直接子div可以看作是flex item。

<html>
	<head>
		<title>flex布局</title>
		<style>
			.container {
				width: 500px;
				height: 500px;
				border: 1px solid #000;
			}
			
			.item1 {
				width:200px;
				height:200px;
				background-color: green;
			}
			
			.item2 {
				width:200px;
				height:200px;
				background-color: red;
			}
		</style>
	</head>
	<body>
		<div class="container">
			<div class="item1">1</div>
			<div class="item2">2</div>
		</div>
	</body>
</html>

一般来说,如果需要使用flex布局,那么就需要有flex containerflex item
在上面代码中,暂时没有使用到flex布局,此时的效果如下图所示:
在这里插入图片描述
可以看到,内层的两个div都是块状元素,因此每个div都占了一行。

接着,给container设置display属性为flex,再看一下效果:

.container {
	width: 500px;
	height: 500px;
	border: 1px solid #000;
	display: flex;
}

效果如下:
在这里插入图片描述
可以看到,此时container内部的两个div不再是块状元素了,而变成了行内块元素。

flex-direction

如果希望内部的两个div垂直排列,可以设置container的flex-direction属性为column,这个属性的默认值是row,因此在没有设置该属性的时候,item会自动进行行排列。

.container {
	width: 500px;
	height: 500px;
	border: 1px solid #000;
	display: flex;
	flex-direction: column;
}

此时的效果图如下:
在这里插入图片描述
flex-direction除了row和column两个取值外,还有row-reverse和column-reverse两个取值,从字面意思可以看出,这两个取值分别是将container内部的item按照行倒序的和列倒序的方式进行排序。

这里以column-reverse为例,将container的flex-direction的值设置为column-reverse,可以看到以下的效果:
在这里插入图片描述
从图中可以看到,container内部的item是从后往前进行分布的,也就是第一个div会最后一个显示,第二个div倒数第二个显示,以此类推。同时,它是以下为基准,依次向上排列。

主轴和交叉轴

主轴和交叉轴可以看作是二维平面的一对坐标系,在传统的画图中,都会将水平向右当做是x轴(主轴),垂直于x轴向上的作为y轴(交叉轴)。

在flex布局中,主轴和交叉轴并不是固定不变的,而是根据flex-direction的不同取值进行变化的。

当flex-direction的值为row时,主轴方向如图所示,此时交叉轴垂直于主轴向下:
在这里插入图片描述

当flex-direction的值为row-reverse时,主轴方向如图所示,此时交叉轴垂直于主轴向下:
在这里插入图片描述

当flex-direction的值为column时,主轴方向如图所示,此时交叉轴垂直于主轴水平向右:
在这里插入图片描述

当flex-direction的值为column-reverse时,主轴方向如图所示,此时交叉轴垂直于主轴水平向右:
在这里插入图片描述

justify-content和align-items

justify-content是用来设置主轴上对齐方式的,相反地,align-items用来设置交叉轴的对齐方式。

justify-content和align-items有几个共同的取值:center(居中)、flex-start、flex-end。

这里选择flex-end进行说明,flex-start与flex-end相反。

之前编写的container的flex-direction属性是column-reverse,因此它的起点是下方,主轴向上,交叉轴向左。

此时设置justify-content为flex-end:

.container {
	width: 500px;
	height: 500px;
	border: 1px solid #000;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

效果如下:
在这里插入图片描述
可以看到,此时第二个div在主轴上并不是以下方作为起点,而是以上方作为起点。因此可以看出,flex-end就是调整对齐的起点。flex-start是这个属性的默认值。

justify-content还有几个其他的取值,包括:space-between(平均分布)、space-around(等距分布)等等。

align-items也有几个其他取值,包括:stretch(拉伸)、baseline(让子元素中的文字底部对齐)等等。

总结

在学习flex布局的过程中,最主要的就是需要搞清楚主轴和交叉轴的方向,这样才能对相关的CSS属性进行正确的取值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flex布局(也称为弹性布局)是种主流的CSS布局方式,它可以方便地实现页面元素的自适应和排列。Flex布局通过定义容器和子元素的属性来实现灵活的布局效果。 在Flex布局,有两个重要的概念:容器和子元素。容器是指应用Flex布局的父元素,而子元素则是容器内部的直接子元素。 以下是Flex布局的一些主要特点和属性: 1. 容器属性: - display: flex;:将容器设置为Flex布局。 - flex-direction:指定主轴的方向,可以是row(水平方向)、column(垂直方向)、row-reverse(水平反向)或column-reverse(垂直反向)。 - justify-content:定义了子元素在主轴上的对齐方式,可以是flex-start(起始对齐)、flex-end(末尾对齐)、center(居对齐)、space-between(两端对齐,项目之间间隔相等)或space-around(每个项目两侧的间隔相等)。 - align-items:定义了子元素在交叉上的对齐方式,可以是flex-start(起始对齐)、flex-end(末尾对齐)、center(居对齐)、baseline(基线对齐)或stretch(拉伸对齐)。 - flex-wrap:定义了子元素是否换行,可以是nowrap(不换行)、wrap(换行)或wrap-reverse(反向换行)。 2. 子元素属性: - flex:指定子元素的伸缩比例,用于控制子元素在容器的占比。 - align-self:定义了单个子元素在交叉上的对齐方式,可以覆盖容器的align-items属性。 以上是Flex布局的一些基本概念和属性,通过灵活地使用这些属性,可以实现各种不同的布局效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值