誰でもこの問題を解決するのを手伝ってくれますか? このソリューションは IE 8 では機能しません。
簡単に言えば、表の行に背景画像を適用すると、背景が内側のセルに適用されます。
誰でもこの問題を解決するのを手伝ってくれますか? このソリューションは IE 8 では機能しません。
簡単に言えば、表の行に背景画像を適用すると、背景が内側のセルに適用されます。
IE8 (Safari と Chrome も) で機能するテーブル行の背景画像を取得するには、テーブル行ではなく行のテーブル セルに背景画像を適用する必要があります。
したがって、たとえば、次の表を使用します。
<table>
<tr>
<td class="cellFirst">First cell</td>
<td class="cellMiddle">Middle cell</td>
<td class="cellMiddle">Middle cell</td>
<td class="cellLast">Last cell</td>
</tr>
</table>
そして、次の CSS を適用します。
td.cellFirst {
background: url('my-image.png') 0 0 no-repeat;
}
td.cellMiddle {
background: url('my-image.png') 50% 0 no-repeat;
}
td.cellLast {
background: url('my-image.png') 100% 0 no-repeat;
}
背景画像付きの「行」が表示されます。行の背景である my-image.png は、各セルで使用されます。
唯一異なるのは、画像の背景位置を変更することです。明らかに、最初のセルは左から開始するため、0 です。中央のセルでは、画像は 50% に配置されます。これにより、画像の左端が非表示になります。最後に、最後のセルの画像を 100% に配置し、画像の右端から開始します。
ほら、背景画像が一列に並んでいます。
はるかに優れた解決策は、次のことを行うことです: position:relative
TR に追加しbackground-image:none
、TD に を設定します。
報告によると、Mac Safari を除くすべてで動作します。これを補うには、ブロックをブロックでラップし、TR
ブロックに背景TBODY
を与えます;)TBODY
そうそう!
その tr 内の td に「background-image:none」を追加します。
バックグラウンド位置を持つテーブルに「行」画像を割り当てることは、列のサイズが等しいことに依存していますか? 画像のサイズが行全体を占めていない場合はどうなりますか? FF で期待どおりに動作する次の CSS があります。
tr.selected { background: #0842C4 url(/my/background/image) repeat-y top right; }
画像はグラデーションで、色は から始まり#0842C4
ます。
作業をさらに困難にするために、HTML は JavaScript によって作成されたポップアップ メニューであり、私は制御できないため、テーブルを変更することはできません。