关于 flex 布局在日常工作中的使用

前端人员大部分其实觉得样式贼简单,感觉JS才有挑战性,忽略了样式的重要性,导致写出来的页面适配性不高。


其实现在常用的比较好的布局为 flex 和 grid。


工作过程中,发现好多人依旧在布局的过程中死磕 position 和 float,导致页面换了分辨率就掉下来,或者就乱掉了。


所以总结一下我经常在工作中常用的一些 flex 布局的用法,也是为了不用每次用到都要打开阮一峰的博客来搜索。

这里也并不是说哪种好哪种不好,只是要灵活使用,不能死磕!!!

(若总结出错可联系博主,仅用于学习交流)

先放上基础用法:Flex 布局教程:语法篇

宫格布局

此部分应该为最简单的用法,就是宫格布局

不论是在移动端还是PC端,宫格布局都是最常见也适合使用 flex 布局的样式。

关于宫格布局我做过总结,这里不再赘述,直接跳转访问 —— 小程序宫格布局

左右上下居中

之前刚学习前端的时候,最常见的考题就是让父元素中的子元素上下左右居中。那时候最常用的方法就是 margin: 0 auto;当然是用这一行代码也有许多先决条件

看其中代码,可以知道如果只是给子元素给定 margin: 0 auto; 只能左右居中,上下并不能居中。

在这里插入图片描述
在这里插入图片描述
经过百度得出可以上下左右居中的代码为:

<style>
	.father {
		border: 1px solid black;
		width: 800px;
		height: 500px;
		position: relative;
	}
	.son {
		width: 100px;
		height: 100px;
		background: red;
		margin:auto;
		left:0;
		right:0;
		top:0;
		bottom:0;
		position:absolute;
	}
</style>
<body>
	<div class="father">
		<div class="son"></div>
	</div>
</body>

结果如下:

在这里插入图片描述
当我们是用 flex 布局的时候几行代码就可以解决

<style>
	.father {
		border: 1px solid black;
		width: 800px;
		height: 500px;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.son {
		width: 100px;
		height: 100px;
		background: red;
	}
</style>
<body>
	<div class="father">
		<div class="son"></div>
	</div>
</body>

结果如成功页面,不再重复写了,大家可以看到这里我们的代码其实简化了不少。

两个子元素一左一右

此种常见于左边显示 title,右边显示箭头或者更多字样

之前的常用方法为:给父元素 padding ,然后左浮动,右浮动,当然这里要注意清除浮动,好多新手都忘了清除浮动,以至于元素空间全部都是0了

常规做法:

<style>
	.father {
		border: 1px solid black;
		width: 200px;
		/*height: 100px;*/
		padding: 10px 20px;
	}
	.son1 {
		float: left;
	}
	.son2 {
		float: right;
	}
</style>
<body>
	<div class="father">
		<div class="son1">标题</div>
		<div class="son2">更多</div>
	</div>
</body>

可以看到这是我没有清除浮动的效果
在这里插入图片描述
清除浮动之后:(给定高度或者overflow都可以,方法挺多的)

在这里插入图片描述
我们接下来使用 flex 试试,代码如下,效果同上:

<style>
	.father {
		border: 1px solid black;
		width: 200px;
		/*height: 100px;*/
		padding: 10px 20px;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
</style>

<body>
	<div class="father">
		<div class="son1">标题</div>
		<div class="son2">更多</div>
	</div>
</body>

其他比较复杂的写法也是通过 flex 进行嵌套去实现的,都是建立在这种比较简单的布局的基础上!

暂时能总结出来好用的方法就上面了,都是比较简单的用法。后续遇到更绝妙的用法,持续更新!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值