Saya tahu ini adalah reaksi yang terlambat, tetapi saya hanya ingin menurunkan nilai 2 sen saya, karena cara saya melakukannya tidak ada di sini.
Soalnya, saya sangat tidak suka bermain-main dengan margin, apalagi margin negatif . Setiap browser tampaknya menangani ini hanya sedikit berbeda dan margin mudah dipengaruhi oleh banyak situasi.
Cara saya untuk memastikan bahwa saya memiliki tabel yang bagus dengan div, adalah membuat struktur html yang baik terlebih dahulu , kemudian menerapkan css.
Contoh bagaimana saya melakukannya:
<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>
Sekarang, untuk css, saya hanya menggunakan struktur baris untuk memastikan perbatasan hanya di tempat yang mereka butuhkan, tidak menyebabkan margin;
.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, meja yang sempurna. Sekarang, jelas ini akan menyebabkan DIV Anda memiliki perbedaan lebar 1px (khususnya yang pertama), tetapi bagi saya, itu tidak pernah menimbulkan masalah apa pun. Jika itu terjadi dalam situasi Anda, saya kira Anda akan lebih bergantung pada margin.