Я понял, что настоящая проблема в том, что кнопки не будут растягиваться, пока вы не дадите им явную ширину (то есть ширина: 100%). Вам все еще нужны ячейки таблицы, чтобы ограничить эти 100% моделью «что подойдет». Вы можете просто установить 33% для каждой кнопки, но это не сработает, если ваши кнопки добавляются динамически (если вы не рассчитываете проценты на сервере).
МЕТОД 1 (не работает): кнопки не растягиваются, чтобы соответствовать строке (т. Е. Отображение: ячейка таблицы игнорируется).
<div style="display:table;width:200px">
<div style="display:table-row">
<button style="display:table-cell">1</button>
<button style="display:table-cell">2</button>
<button style="display:table-cell">3</button>
</div>
</div>
Для IE до IE8 вам нужно предоставить реальную таблицу или скрипт совместимости, например IE8-js. Основная концепция достаточно проста:
<!--[if ie lt 8]>
<script><!--pseudo-code, not real js-->
for (el in getElementsByTagName('button')) {
if el.style.find('display:table-cell') {
el.innerHTML = '<td><button>'+el.innerHTML+'</button></td>'
}
}
</script>
<![endif]-->
МЕТОД 2 (работает): Хммм. По какой-то причине отображение: стиль ячейки таблицы не работает на элементах кнопок. Я смог сделать это с помощью некоторой дополнительной разметки.
<div style="display:table;width:500px;">
<div style="display:table-row">
<div style="display:table-cell"> <button style="width:100%">1938274</button> </div>
<div style="display:table-cell"> <button style="width:100%">2</button> </div>
<div style="display:table-cell"> <button style="width:100%">3</button> </div>
</div>
</div>
Я признаю, что это не красиво, но это обеспечит заполнение всего горизонтального пространства. Его можно немного очистить, используя классы, как в этой демонстрации , которую я собрал. Тем не менее, в сочетании с недостатками IE, это, вероятно, тот случай, когда я бы сказал, игнорировать пуристы и просто использовать таблицу:
<style>table button {width:100%}</style>
<table style="width:500px;">
<tr> <td><button>1938274</button> <td> <button>2</button> <td> <button>3</button> </tr>
</table>