通常、ブロック要素をテーブルモデルに変換して「テーブルのような」表示を実現しますが、今では、問題の解決策として、正反対のことをしていることに気付きました。
主なアイデアは、すべての要素の幅を制御できるように、テーブルをブロック モデル デザインに変換することです。私のソリューションの主な利点は、CSS 関数 (calc など) を使用して、列 [calc(100% - 100px) など] にレスポンシブな幅を与えることができることです。しかし、私のソリューションの主な小型化は、同じ行に異なるセルの高さがある場合のシナリオです。幸いなことに、フェイクコラムのテクニックで簡単に修正できます。(私はone-true-layoutを使用しました)
それで、すべてのことを言った後、解決策を見てみましょう: (その一部は CSS セクションに書かれており、通常の CSS セレクターを使用し、要求したようにインラインではありません。私にとっては簡単だったからです。しかし、コピーできます-すべてを適切な場所に貼り付けて、すべてインラインにします)
ワーキング フィドル テスト済み: Chrome、IE10、FF
HTML<tbody>
(インライン CSS スタイルを適用できるように追加しました)
<table>
<tbody>
<tr>
<td style="background-color:red; width: 100px;">100px</td>
<td style="background-color:yellow; width: calc(100% - 100px);">100% - 100px<br/>another line to demonstrate <i>faux column</i></td>
</tr>
<tr>
<td style="background-color:azure; width:50%;">50%</td>
<td style="background-color:pink; width:50%;">50%</td>
</tr>
</tbody>
</table>
CSS (すべてのスタイリングをインラインで配置できます)
*
{
margin: 0;
padding: 0;
}
table, tbody, tr
{
display: block;
}
tr
{
overflow: hidden; /*Faux column*/
}
td
{
float: left;
padding-bottom: 99999px; /*Faux column*/
margin-bottom: -99999px; /*Faux column*/
}