如何将CSS样式应用于HTML表格中的特定行?

3
我有一个HTML页面,看起来像这样:

<html>
  <head>
    <style type="text/css">
       tbody, th, td {padding:0px;margin:0px;border:0px;}
       tr.foo { border: 1px solid blue; }
    </style>
  </head>
  <body>
    <table>
      <tbody>
        <tr><td>Nothing
        <tr class="foo"><td>Bordered
      </tbody>
    </table>
  </body>
</html>

注意:tbody、th和td的样式不能更改,因为(在我的实际用例中),这些样式适用于其他页面。
我可以使用什么CSS模式选择器来突出显示(创建边框)具有类foo的行?

在修正代码片段后,仍然没有显示边框。 - oompahloompah
1个回答

4

编辑:我看到你已经修复了border规则。既然那个逗号是一个笔误,浏览器应该会正确解析你的CSS(参见jsFiddle)。无论如何,请尝试根据Oded的评论修复你的style标签。

你的选择器是正确的,但你的声明有误,不应该在solidblue之间加上逗号:

tr.foo { border: 1px solid blue; }

你应该关闭你的tdtr标签,虽然不关闭也不是无效的,但这是一个好习惯。


1
而且style标签缺少type属性名称。 - Oded
@BoltClock:感谢您发现了这个错别字。然而,在更正了这个错别字之后,该行仍未被突出显示。 - oompahloompah
@oompahloompah:你在测试哪个浏览器? - BoltClock
@BoltClock:在Ubuntu Linux上使用FF 3.6.14。当我使用Firebug并选择元素时,我可以看到样式已经正确应用,但是不知何故,它没有被渲染出来——即边框没有显示。我将下载另一个浏览器并测试该页面,以查看是否是FF的问题。 - oompahloompah
@BoltClock:嗯,你知道的,另一个人是对的。在 FF 上显示之前,我必须使用“tr.foo td”作为选择器。刚刚检查了一下,Opera 也是如此(我需要将选择器指定到 td)。 - oompahloompah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接