0

我正在尝试使用 CSS 覆盖元素的后代(不是直接子代)的样式。

说,我正在研究:

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

我想覆盖样式以将 tr 元素的 valign 设置为“中心”。

我试着做:

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 很好。选择器之间的空格选择后代,>直接孩子需要。

您的问题是 inline 属性优先于样式表中的样式。您可以尝试使用!important,但我真的不知道优先级如何与已弃用的 HTML 属性一起使用。我从不使用它们。

于 2010-09-24T23:01:49.233 回答
0

问题不在于优先级。我想应该是

垂直对齐:中间而不是垂直对齐:中心

这行得通。

于 2010-10-19T18:35:21.860 回答