html - 使用具有固定大小边距间距的 flexbox 的网格列

标签 html css flexbox grid-layout

是否可以对 flexbox 布局中的单元格应用固定边距(例如 5px),其中行空间在其列之间均匀分布?

我想要实现的目标:

this is the desired layout

我当前的 CSS 只会在一行中对齐 3 列:

JSFiddle

.row {
    display: flex;
    flex-flow: row wrap;
	box-shadow: 0 0 0 1px green;
}

.col {
    flex: 0 0 25%;
    text-align: center;
	box-shadow: 0 0 0 1px blue;
    background-color: steelblue;
	
	margin: 5px;
}
<div class="row">
    <div class="col">
		<div class="panel">1</div>
	</div>
    <div class="col">
		<div class="panel">2</div>
	</div>
    <div class="col">
		<div class="panel">3</div>
	</div>
    <div class="col">
		<div class="panel">4</div>
	</div>
	<div class="col"><div class="panel">5</div></div>
</div>

最佳答案

你可以使用 calc()对于 flex-basis 长度(在你的例子中——它在简写属性 flex 中),10px 因为 margin-left: 5pxmargin-right: 5px:

JSFiddle

.row {
    display: flex;
    flex-flow: row wrap;
    box-shadow: 0 0 0 1px green;
}

.col {
    flex: 0 0 calc(25% - 10px);
    text-align: center;
    box-shadow: 0 0 0 1px blue;
    background-color: steelblue;
    margin: 5px;
}
<div class="row">
    <div class="col">
        <div class="panel">1</div>
    </div>
    <div class="col">
        <div class="panel">2</div>
    </div>
    <div class="col">
        <div class="panel">3</div>
    </div>
    <div class="col">
        <div class="panel">4</div>
    </div>
    <div class="col">
        <div class="panel">5</div>
    </div>
</div>

关于html - 使用具有固定大小边距间距的 flexbox 的网格列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34610036/

相关文章:

html - 嵌入 span 元素中的 FlexBox 对齐问题

html - 像数组一样访问 Viewbag?

javascript - 在 Enyo 2.0 中使用 SVG 控件处理事件(对象或嵌入标记)

javascript - Jquery,悬停时改变颜色

javascript - 单击函数之间的 Angular ,共享指令模板

javascript - html 元素 safari iOS 的高度 100%

css - 哪个 Modernizr css 类决定是否可以使用 translateX()?

html - PNG 图像的透明度与 CSS 背景属性重叠

html - Flexbox 调整大小和可滚动溢出

html - flexbox 元素中的白线不会消失