Извините. Не существует исправления для поддержки IE6 CSS display:table
. Единственный способ добиться этого макета в IE6 - использовать элементы <table>
.
Первый вопрос: вам действительно нужно поддерживать IE6? Если вы просто откажетесь от поддержки, вы сами решите массу проблем, включая эту. В настоящее время глобальное использование IE6 ниже 3% и даже ниже в большинстве развитых стран.
Если вам по-прежнему требуется поддержка IE6, то самым очевидным решением будет просто проглотить гордость за семантическую разметку и просто использовать тег <table>
.
Как описано @Tom, следующее лучшее решение - написать макет, используя display:inline-block;
.
inline-block
позволяет вам определять ваши элементы как блоки, но при этом сохранять их в текстовом потоке (вроде как тег <img>
работает по умолчанию). Если вы комбинируете это с фиксированной шириной элемента и делителем ваппера вокруг строк, вы можете получить что-то похожее на таблицу, хотя может быть трудно заставить ее динамически расширяться с шириной страницы.
Единственная большая ошибка в этом вопросе заключается в том, что inline-block
работает только в IE6 / 7 для элементов со стилем по умолчанию display:inline
. Другими словами, это работает для <span>
, но не для <div>
. Не беда, но что-то, о чем нужно знать, тем более что вы специально спрашиваете о поддержке IE6. Помимо этого, хорошая новость заключается в том, что вы сможете без проблем использовать display:inline-block
без каких-либо других хаков или обходных путей.