Ursache
Aus der MDN-Dokumentation :
[Die margin-Eigenschaft] gilt für alle Elemente mit Ausnahme von Elementen mit anderen Tabellenanzeigetypen als Tabellenbeschriftung, Tabelle und Inline-Tabelle
Mit anderen Worten, die margin
Eigenschaft gilt nicht für display:table-cell
Elemente.
Lösung
Verwenden Sie stattdessen die border-spacing
Eigenschaft.
Beachten Sie, dass es auf ein übergeordnetes Element mit einem display:table
Layout und angewendet werden sollte border-collapse:separate
.
Beispielsweise:
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;}
Unterschiedlicher Rand horizontal und vertikal
Wie von Diego Quirós erwähnt, border-spacing
akzeptiert die Eigenschaft auch zwei Werte, um einen unterschiedlichen Rand für die horizontale und vertikale Achse festzulegen.
Beispielsweise
.table {/*...*/border-spacing:3px 5px;} /* 3px horizontally, 5px vertically */
padding
kann wie gewohnt für jeden erforderlichen Selektor (z. B. Klasse oder ID) eingestellt werden. Wenn Sie dasmargin
zwischen den Zellen meinen , kann dies für die vertikale und horizontale Achse separat festgelegt werden, indem zwei Werte auf gesetztborder-spacing
werden. Dies gilt jedoch für die gesamte Tabelle und nicht für einzelne Zellen.Sie können innere Divs verwenden, um den Rand festzulegen.
JS Fiddle
quelle
.inner-div { margin-right: 5px; } .outer-cell:last-child .inner-div { margin-right: 0; }
. Beachten Sie aber auch dieses Problem: Die roten und grünen Hintergründe dieses Beispiels stimmen nicht unbedingt in der Höhe überein, da sie sich nicht in den Zellen befinden.Tabellenzellen berücksichtigen den Rand nicht, aber Sie können stattdessen transparente Ränder verwenden:
Hinweis: Hier können keine Prozentsätze verwendet werden ... :(
quelle
Wenn Sie so nebeneinander div haben
Das sollte funktionieren!
quelle