原因
MDNのドキュメントから:
[マージンプロパティ]は、テーブルキャプション、テーブル、インラインテーブル以外のテーブル表示タイプの要素を除くすべての要素に適用されます。
つまり、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>
CSS
.table {display:table;border-collapse:separate;border-spacing:5px;}
.row {display:table-row;}
.cell {display:table-cell;padding:5px;border:1px solid black;}
水平方向と垂直方向のマージンが異なる
DiegoQuirósが述べたように、このborder-spacing
プロパティは2つの値を受け入れて、水平軸と垂直軸に異なるマージンを設定します。
例えば
.table {/*...*/border-spacing:3px 5px;} /* 3px horizontally, 5px vertically */