причина
Из документации 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>
CSS
.table {display:table;border-collapse:separate;border-spacing:5px;}
.row {display:table-row;}
.cell {display:table-cell;padding:5px;border:1px solid black;}
Различный запас по горизонтали и вертикали
Как упомянул Диего Кирос, border-spacingсвойство также принимает два значения, чтобы установить различное поле для горизонтальной и вертикальной осей.
Например
.table {/*...*/border-spacing:3px 5px;} /* 3px horizontally, 5px vertically */