У меня есть HTML, который я хочу использовать для отображения атрибутов display: table css. К сожалению, я не могу изменить HTML (или JS), только CSS (длинный рассказ). Это проблема, потому что структура существующего HTML вызывает проблемы для макета таблицы. Вот упрощенная версия HTML и CSS:
<style>
.like-table { display: table;}
.like-tr { display: table-row;}
.like-th { display: table-cell; border: 1px solid gray;}
.useless-div-1 { }
.useless-div-2 { }
.like-td { display: table-cell; border: 1px solid gray;}
</style>
<div class="like-table">
<div class="like-tr">
<div class="like-th">1</div>
<div class="like-th">22</div>
<div class="like-th">3</div>
</div>
<div class="useless-div-1"><div class="useless-div-2">
<div class="like-tr">
<div class="like-td">111</div>
<div class="like-td">2</div>
<div class="like-td">3</div>
</div>
<div class="like-tr">
<div class="like-td">11</div>
<div class="like-td">2</div>
<div class="like-td">333</div>
</div>
</div></div>
</div>
К сожалению, это делает ширину столбцов заголовка и тела различной шириной:
Если я удалю "бесполезные-div- *" открывающие и закрывающие теги:
<div class="like-table">
<div class="like-tr">
<div class="like-th">1</div>
<div class="like-th">22</div>
<div class="like-th">3</div>
</div>
<div class="like-tr">
<div class="like-td">111</div>
<div class="like-td">2</div>
<div class="like-td">3</div>
</div>
<div class="like-tr">
<div class="like-td">11</div>
<div class="like-td">2</div>
<div class="like-td">333</div>
</div>
</div>
Затем он отображает штраф, выравнивание ширины столбцов и столбцов:
Итак, есть ли что-нибудь, что я могу сделать для CSS, который приведет к тому, что первый набор HTML будет вести себя как второй? Помните, что я не могу изменить HTML или JavaScript - только CSS! Пожалуйста, не спрашивайте, почему...