Ich weiß, dass dies eine späte Reaktion ist, aber ich wollte nur meinen Wert von 2 Cent senken, da meine Art, dies zu tun, nicht hier ist.
Sie sehen, ich spiele wirklich nicht gerne mit Rändern, besonders nicht mit negativen Rändern . Jeder Browser scheint damit ein bisschen anders umzugehen, und die Ränder werden leicht von vielem beeinflusst Situationen beeinflusst.
Um sicherzustellen, dass ich eine schöne Tabelle mit divs habe, erstelle ich zuerst eine gute HTML-Struktur und wende dann das CSS an.
Beispiel, wie ich es mache:
<div class="tableWrap">
<div class="tableRow tableHeaders">
<div class="tableCell first">header1</div>
<div class="tableCell">header2</div>
<div class="tableCell">header3</div>
<div class="tableCell last">header4</div>
</div>
<div class="tableRow">
<div class="tableCell first">stuff</div>
<div class="tableCell">stuff</div>
<div class="tableCell">stuff</div>
<div class="tableCell last">stuff</div>
</div>
</div>
Für das CSS verwende ich einfach die Zeilenstruktur, um sicherzustellen, dass die Ränder nur dort sind, wo sie sein müssen, und keine Ränder verursachen.
.tableWrap {
display: table;
}
.tableRow {
display: table-row;
}
.tableWrap .tableRow:first-child .tableCell {
border-top: 1px solid #777777;
}
.tableCell {
display: table-cell;
border: 1px solid #777777;
border-left: 0;
border-top: 0;
padding: 5px;
}
.tableRow .tableCell:first-child {
border-left: 1px solid #777777;
}
Et voila, ein perfekter Tisch. Dies würde natürlich dazu führen, dass Ihre DIVs 1px Unterschiede in der Breite aufweisen (insbesondere die erste), aber für mich hat dies nie zu irgendwelchen Problemen geführt. Wenn dies in Ihrer Situation der Fall ist, wären Sie wahrscheinlich stärker von Margen abhängig.