使用具有固定尺寸边距檐槽的flexbox的网格列

Imp*_*ive 4 html css css3 grid-layout flexbox

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

想要实现:

这是理想的布局

我当前的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;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

Ser*_*sov 6

你可以使用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;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)