0

CSSを使用して、要素の子孫(直接の子ではない)のスタイルをオーバーライドしようとしています。

たとえば、私は次のことに取り組んでいます。

<table id="z_d__h3-real" class="z-hbox">
 <tbody>
   <tr valign="top">
   -----
   </tr>
  </tbody>
</table>

スタイルをオーバーライドして、tr要素のvalignを「center」に設定したいと思います。

私はやってみました:

table.z-hbox tr {
    vertical-align:center;
}

ただし、これは機能しません。table.z-hbox trは<tr>、ここでは当てはまらない直接の子を探していると思います。<tr>中に包まれているように<tbody>

これを修正するにはどうすればよいですか?

4

3 に答える 3

2

インラインスタイルは、タグまたはスタイルシートに含まれるもので定義されているものよりも優先されます。属性を削除するかvalign="top"(とにかく新しいバージョンのHTML標準では非推奨になります)、マークアップを変更できない場合は、CSSルールをとしてマークし!importantます。セレクター自体は優れています(他のルールを追加することでこれをテストできます)。

于 2010-09-24T23:04:06.850 に答える
0

CSSは問題ありません。セレクター間の空白は子孫を選択>します。直接の子には必要です。

問題は、インライン属性がスタイルシートのスタイルよりも優先されることです。を使用してみることができますが!important、非推奨のHTML属性で優先順位がどのように機能するかは正直わかりません。私はそれらを決して使用しません。

于 2010-09-24T23:01:49.233 に答える
0

問題は優先順位ではありません。私はそれがすべきだと考えました

vertical-align:vertical-alignの代わりにmiddle :center

これは機能します。

于 2010-10-19T18:35:21.860 に答える