2011-11-08 10 views
0

私はこの作業を行う方法を理解しようとしています。バックグラウンドではありません:外側のテーブルの赤は他のすべてのものを上書きしますか?そして、なぜこの例は黄色の背景に終わるのですか?それはDOMで一番下にネストされた要素ですか?テーブルとオーバーフローしたdivを持つ背景とZインデックス

<style type="text/css"> 
    table, td, div { 
    height: 200px; 
    width: 400px; 
} 
</style> 

<table class="outer" cellpadding="0" cellspacing="0"> 
<tr> 
    <td style="background: red"> 
    <div style="overflow:auto;background:green"> 
    <table class="inner" style="width:800px"> 
     <tr> 
      <td style="background:yellow"></td> 
     </tr> 
    </table> 
    </div> 
    </td> 
</tr> 
</table> 

ここにはJSFiddle for thisがあります。

私は内側の表のセルの背景色を親のdivの背景と外側の表の親のtdで上書きしようとしています。それはまったく可能ですか?

+0

カスケードをDOMツリーには適用されません。 bgcolor赤でbgcolorの緑を持つdivがある場合、赤は緑を上書きしません。 CHTMLではありません。これはトリックを行うセレクターですが、td自体にスタイルが宣言されているため、JavaScript以外のものでオーバーライドすることも、HTML自体を編集することもできません。 – Kyle

答えて

0

Tdのバックグラウンドは最後に言います。だから技術的には、CSSだけではそれをすることはできません。 !重要な要素をdivスタイルに入れても機能しません。とにかくとすれば、おそらくjsで修正し、tdの色を別の色に置き換えることができます。

+0

はい、私は既に試しました!重要 - 動作しません。残念ながら、私は "黄色の"背景を取り除くことができないので、javascriptの解決策は動作しません。私はちょうど上にいくつかの他の背景(実際にはイメージ)を置く必要があります... –

+0

あなたはそれにいくつかのHTMLを注入することはできますか?またはあなたはCSSでちょうど回り込むことができますか? – holographix

+0

私はいくつかのhtmlを挿入することができます... –

0

bczそのCSSのデフォルトの動作uがuはウルの親をオーバーライドし、その特定のタグ にスタイルを与えるために持っているよりもuは子タグで他のCSSをしたい場合には、自動的に子のhtml

によって継承よりも、親タグにスタイルを与える場合スタイル

0

第2のtdは常に上に描画され、最初のtdの背景の上に描画されます。 style属性を使用しているため、ブロックまたは外部CSSファイルのstyleに適用されているCSSよりも常に優先されます。JavaScriptを使用したり、style属性からstyleブロックにスタイルを移動したりすることなくこの動作を変更することはできません。 jQueryのを使用して

、次のようなものでこれを達成できます。

$('.inner td').css({ 
    'background' : 'colour or image here' 
}); 
関連する問題