CSS Flex 弹性布局使用

Stars-one 2021年02月08日 541次浏览 本篇字数为961字

本文为作者原创,转载请注明出处,谢谢配合
作者:Stars-one
链接:https://stars-one.site/2021/02/08/flex弹性布局


前端钻研不深,本文只是稍微记录一下关于Flex布局的知识,讲得不深,需要深入了解学习的可以参考其他大佬的博客

重点记录

通过display:flex即可将div设置为flex布局

flex-direction是关于布局排列的方向,默认为row,flex-direction: column可以将flex布局纵向排列

flex布局可以通过align-itemjustify-content设置元素对齐方式

默认flex布局是横向排列,align-item是对于y轴方向的对齐方式,justify-content是对于x轴的对齐方式

如果flex布局是纵向排列,则align-item是对于x轴方向的对齐方式,justify-content是对于y轴的对齐方式,与上面的相反

justify-content使用space-between即可让元素实现左右对齐的效果,使用space-around可以达到同样的效果,两者的不同为:space-around会在左右对齐后,会将间距进行平分且分给元素

flex:1 1 0% 自动占满

PS: 由于使用的是Uni-app开发,下面中的div是使用view标签

居中

以下都是横向排列的代码,关键属性为align-itemjustify-content

水平居中

<!-- 水平居中 -->
<view style="display: flex;justify-content: center;">
	<view style="background-color: #007AFF;">内容</view>
	<view style="background-color: orange;">内容1</view>
</view>

垂直居中

<!-- 垂直居中 -->
<view class="flex" style="align-items: center;">
	<view style="background-color: #007AFF;">内容</view>
</view>

水平垂直居中

<!-- 水平垂直居中 -->
<view class="flex" style="align-items: center;justify-content: center;">
	<view style="background-color: #007AFF;">内容</view>
</view>

左右对齐


<!-- 左右对齐 -->
<view style="display: flex;justify-content: space-between;">
	<view style="background-color: #007AFF;">内容</view>
	<view style="background-color: orange;">内容1</view>
</view>

<!-- 左右平分内容,可扩展为平分布局 -->
<view style="display: flex;">
	<view style="background-color: #007AFF;flex: 1 1 0%;">内容</view>
	<view style="background-color: orange;flex: 1 1 0%;">内容1</view>
</view>

上下对齐

<!-- 垂直居顶 -->
<view class="flex" style="align-items: flex-start;">
	<view style="background-color: #007AFF;">内容</view>
</view>

<!-- 垂直居底 -->
<view class="flex" style="align-items: flex-end;">
	<view style="background-color: #007AFF;">内容</view>
</view>

自己稍微封装一下常用的样式:

.match_parent {
	flex: 1 1 0%;
}

.flex_left_right {
	display: flex;
	justify-content: space-between;
}

.flex {
	display: flex
}

.flex-center{
	display: flex;
	align-items: center;
}