これは確かに不可能に見えます。各セルの幅と高さを具体的に定義しない限り、テーブルを使用するという目的が損なわれます。
可能性のあるソリューション...
RGBA
背景色を使用するbackground-color: rgba(200,200,200,0.5)
場合、失敗した場合はいつでも単色にフォールバックして使用できます。RGBAのサポートは、すべての上位のブラウザーで行われていますが、IE8以下では機能しません...
透明なPNG
明らかに簡単な方法は、透明なPNGの使用にフォールバックすることですが、これは、使用している色が事前定義されており、かなり堅固であることに依存しています。
-moz-elementを使用します
FireFoxを機能させるためのもう1つの狂った解決策(色ではなく背景画像を使用している場合)は、この機能を使用するbackground: moz-element()
ことです。ここでは、必要になる可能性のあるさまざまな不透明度の非表示要素をページ上に作成し、それらをidを介して背景として参照します。例えば:
<div id="image1" style="background: url(image1.jpg); opacity: 0.5;"></div>
次に、背景を表示する要素でそれを参照します。
<td style="background: -moz-element(#image1);"></td>
私はこの方法を保証していませんが、それはかなりエレガントではなく、ブラウザ固有です。Tbh私は、この問題が(特にFFで)昔ながらの絶対的および相対的なトリックを使用して実際に修正できないことを知って非常に驚いています。
テーブルを使わないでください
より多くのブラウザでサポートされるソリューションは、テーブルを使用してドロップし、古き良きdivとfloatを使用してテーブル構造を再作成することです。このソリューションの唯一の問題は、ほとんどの幅と高さを定義する必要があり、FlexBoxのようなさらに実験的なものにフォールバックしない限り、垂直方向のセルの配置を実現できないことです。