次のコード例があります: http://jsfiddle.net/RZUnh/3/
フィドルリンクに行きたくない人のためのマークアップは次のとおりです。
<table border="1">
<tr>
<td>
<img src="http://static.tumblr.com/xicugzn/8YDm6eu1c/aviarios-del-caribe-sloth-sanctuary.10968.large_slideshow.jpg" height="150" />
<div class="child">Overlay</div>
</td>
<td>
<img src="https://leerburg.com/Photos/bamboostick874.gif" height="250" />
<div class="child">Overlay</div>
</td>
</tr>
<tr>
<td>Text</td>
<td>Text</td>
</tr>
</table>
そしてこれがCSSです。
td {
min-height:70px;
position:relative;
}
.child {
background-color: rgba(255, 0, 0, .5);
position: absolute;
right:0px;
bottom: 5px;
}
Chrome、IE 10、および Safari では、次のレイアウトが生成されます。
ただし、Firefox では、結果はまったく異なります (「オーバーレイ」が実際のテーブルの外にあることに注意してください)。
私はこの問題を 3 時間以上いじりましたが、開発部門の誰も問題の原因を知りません。
この件について調査したところ、TD 内の相対的な配置は良くないことがわかりました。提案に従って、相対レイアウトでその中に div コンテナーを作成しようとしましたが、代わりにレイアウトは次のようになりました (Firefox の場合):
この問題を解決するにはどうすればよいですか?