Добавьте строгий тип документа на свою страницу, иначе IE будет в режиме причуд:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
С этим вверху файла он работает в IE8 для меня.
EDIT
Что касается дальнейших исследований, я уверен, что поддержка таблиц в IE8 полностью глючит. Я добавил элемент-обертку в текст, чтобы точно имитировать таблицу (код ниже). Затем я поставил фактическую таблицу ниже. Таблица работает точно так, как вы хотите, но эквивалент в div не работает. Я пробовал другие элементы, такие как span, но все равно не работает.
Вкратце: используйте обычные таблицы, если можете, или переосмыслите свой макет.
Вот код, который я использовал. Две «таблицы» должны быть одинаковыми, за исключением небольшого отступа:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>whatever</title>
<style>
.box {
display: table;
width: 250px;
border: 1px solid red;
padding: 10px;
padding: 5px;
}
.top {
display: table-row;
margin: 10px;
padding: 5px;
}
.bottom {
display: table-row;
margin: 10px;
padding: 5px;
}
.top .cell {
display: table-cell;
border: 1px solid blue;
margin: 5px;
padding: 5px;
}
.bottom .cell {
display: table-cell;
border: 1px solid green;
margin: 5px;
padding: 5px;
}
</style>
</head>
<body>
<div class="box">
<div class="top">
<div class="cell">top</div>
</div>
<div class="bottom">
<div class="cell">bottom
oooooooooooooooooooooooooooooooooooooooooooooooooo</div>
</div>
</div>
<br><br>
<table style="border: 1px solid red; display: table;width: 250px">
<tr style="display: table-row;">
<td style="border: 1px solid blue; display: table-cell;">top</td>
</tr>
<tr style="display: table-row;">
<td style="border: 1px solid green; display: table-cell;">bottom
oooooooooooooooooooooooooooooooooooooooooooooooooo</td>
</tr>
</table>
</body>
</html>