display: table css 属性を使用して制御したい HTML があります。残念ながら、私は実際に 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>
悲しいことに、これはヘッダーと本文の列幅を異なる幅にレンダリングします。
「useless-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>
次に、ヘッダーと本文の列幅を揃えて、適切にレンダリングします。
では、HTML の最初のセットを 2 番目のセットのように動作させる CSS に対してできることはありますか? HTML や JavaScript を変更することはできません。CSS だけ です。理由は聞かないでください...