本文介绍了margin-top 仅当 flex 项目被包裹时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含两个弹性项目的弹性容器.我想在第二个上设置一个 margin-top,但只有在它被包裹时而不是在第一条伸缩线上.
如果可能,我想避免使用媒体查询.
我认为第一个元素的 margin-bottom 可能是一个解决方案.然而,当元素没有被包裹时,它会在底部增加空间,所以同样的问题.
这是我的代码:
.container {显示:弹性;flex-wrap: 包裹;justify-content:空间环绕;}.item-big {背景:蓝色;宽度:300px;}.item-小{背景:红色;边距顶部:30px;}
<div class="item-big">第一个大元素
<div class="item-small">第二个小元素
解决方案
你可以添加一些 margin-top
到两个 flex 项目,以及一个负的 margin-top
与 flex 容器的数量相同.
这样,flex 容器的负边距将抵消第一行 flex 项目的边距,但不会抵消包裹到其他行的项目的边距.
.container {边距顶部:-30px;}.item-大,.item-小{边距顶部:30px;}
.container {显示:弹性;flex-wrap: 包裹;justify-content:空间环绕;边距顶部:-30px;}.item-大,.item-小{边距顶部:30px;背景:红色;}.item-big {背景:蓝色;宽度:300px;}
<div class="item-big">第一个大元素
<div class="item-small">第二个小元素