причина
Из документации 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 */
padding
может быть установлен для любого необходимого селектора (например, class или id), как обычно. Если вы имеете в виду интервалmargin
между ячейками, то его можно установить отдельно для вертикальной и горизонтальной осей, задав для него два значенияborder-spacing
, но оно будет применяться ко всей таблице, а не к отдельным ячейкам.Вы можете использовать внутренние div для установки поля.
JS Fiddle
источник
.inner-div { margin-right: 5px; } .outer-cell:last-child .inner-div { margin-right: 0; }
. Но также обратите внимание на эту ошибку: красный и зеленый фон этого примера не обязательно будут совпадать по высоте, поскольку они не находятся в ячейках.Ячейки таблицы не учитывают поля, но вместо этого вы можете использовать прозрачные границы:
Примечание: здесь нельзя использовать проценты ... :(
источник
Если у вас есть div рядом друг с другом, как это
Это должно работать!
источник