Я знаю, що це пізня реакція, але я просто хотів скинути свої 2 центи, оскільки мій спосіб це зробити тут не тут.
Розумієте, мені дуже не подобається грати з полями, особливо негативними . Здається, кожен браузер справляється з цим, що трохи відрізняється, і на поля легко впливати багато ситуацій.
Мій спосіб переконатися, що у мене є хороша таблиця з divs, - це створити спочатку хорошу структуру html , а потім застосувати css.
Приклад того, як я це роблю:
<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>
Тепер для css я просто використовую структуру рядків, щоб переконатися, що межі знаходяться лише там, де вони повинні бути, не викликаючи полів;
.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, ідеальний стіл. Очевидно, це могло б призвести до того, що ваші DIV-файли мають різницю в ширині 1px (зокрема, першу), але для мене це ніколи не створювало жодної проблеми. Якби це сталося у вашій ситуації, то, мабуть, тоді ви б більше залежали від полів.