我有div
彼此相邻的元素display: table-cell;
.
我想margin
在它们之间设置,但margin: 5px
没有效果.为什么?
我的代码:
<div style="display: table-cell; margin: 5px; background-color: red;">1</div>
<div style="display: table-cell; margin: 5px; background-color: green;">1</div>
Run Code Online (Sandbox Code Playgroud)
Boa*_*oaz 297
从MDN文档:
[margin属性]适用于除table-caption,table和inline-table之外的表显示类型的元素以外的所有元素
换句话说,该margin
物业是不适用display:table-cell
的元素.
请考虑使用该border-spacing
属性.
请注意,它应该应用于具有display:table
布局和的父元素border-collapse:separate
.
例如:
HTML
<div class="table">
<div class="row">
<div class="cell">123</div>
<div class="cell">456</div>
<div class="cell">879</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.table {display:table;border-collapse:separate;border-spacing:5px;}
.row {display:table-row;}
.cell {display:table-cell;padding:5px;border:1px solid black;}
Run Code Online (Sandbox Code Playgroud)
水平和垂直不同的边距
正如DiegoQuirós所提到的,该border-spacing
属性还接受两个值来设置水平轴和垂直轴的不同边距.
例如
.table {/*...*/border-spacing:3px 5px;} /* 3px horizontally, 5px vertically */
Run Code Online (Sandbox Code Playgroud)
urm*_*mur 21
您可以使用内部div来设置边距.
<div style="display: table-cell;">
<div style="margin:5px;background-color: red;">1</div>
</div>
<div style="display: table-cell; ">
<div style="margin:5px;background-color: green;">1</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如果没有边框,可以使用透明边框而不是边距:
div {
display: table-cell;
border: 5px solid transparent;
}
Run Code Online (Sandbox Code Playgroud)
注意:你不能在这里使用百分比...... :(