Ответ 1
Причина
От документация MDN:
[Свойство margin] применяется ко всем элементам, кроме элементов с типы отображения таблицы, отличные от заголовка таблицы, таблицы и встроенной таблицы
Другими словами, свойство 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;}
См. jsFiddle demo
Разный край по горизонтали и вертикали
Как уже упоминалось Диего Киросом, свойство border-spacing
также принимает два значения для установки другого поля для горизонтальной и вертикальной осей.
Например
.table {/*...*/border-spacing:3px 5px;} /* 3px horizontally, 5px vertically */