折りたたまれた境界線と隣接する境界線、およびすべてのセルに標準の境界線がある HTML テーブルがあり、特定の行の境界線の色を別のものに変更したいと考えています。問題は、境界線が折りたたまれていて、隣接するセルの色 (または一般的にはスタイル) が異なる場合、ブラウザーが視覚的に受け入れられる方法でレンダリングされないことです。
ここに私のHTMLがあります:
<table>
<tr><td>Lorem</td><td>Ipsum</td></tr>
<tr><td>Lorem</td><td>Ipsum</td></tr>
<tr id="foo"><td>The border of these cells</td>
<td>is not uniformly red!</td></tr>
<tr><td>Lorem</td><td>Ipsum</td></tr>
</table>
CSS:
table { border-collapse: collapse; border-spacing: 0 }
td { padding: 5px; border: 3px black solid; }
#foo td { border: 3px red solid; }
上記の JSFiddleもあります。
さまざまなブラウザーがどのようにレンダリングするか:
IE 7 (標準):
IE 8 および 9 (標準):
Firefox 11 (左の赤い境界線の微妙な視覚的アーティファクトと、角をレンダリングするために選択した風変わりな方法に注意してください):
クローム 18:
質問:視覚的に受け入れられるレンダリングを得るにはどうすればよいですか? そのレンダリングは、「赤い境界線は常に黒い境界線よりも優先される」という理想でしょうか?
説明:
私は何よりもまず、純粋な CSS ソリューションを探しています。
これが不可能な場合は、小規模でローカライズされた変更が必要な作業を行います (つまり、あらゆる場所のすべてのテーブルで行う必要があるものではありません)。
実際の Web サイトでは、境界線を制御するスタイルがユーザーの操作に基づいて動的に適用されるため、Javascript を使用できます。イベント ハンドラーは、これとほとんど同じコードでセットアップされます。