152

有没有办法将一个类的样式应用到一个级别的 td 标签?

<style>.MyClass td {border: solid 1px red;}</style>

<table class="MyClass">
  <tr>
    <td>
      THIS SHOULD HAVE RED BORDERS
    </td>
    <td>
      THIS SHOULD HAVE RED BORDERS
      <table><tr><td>THIS SHOULD NOT HAVE ANY</td></tr></table>
    </td>
  </tr>
</table>
4

7 回答 7

246

有没有办法将一个类的样式应用到一个级别的 td 标签?

* :

.MyClass>tbody>tr>td { border: solid 1px red; }

但!'<code>>' 直接子选择器在 IE6 中不起作用。如果您需要支持该浏览器(唉,您可能会这样做),您所能做的就是单独选择内部元素并取消设置样式:

.MyClass td { border: solid 1px red; }
.MyClass td td { border: none; }

*请注意,第一个示例引用了tbodyHTML 中未找到的元素。它应该在您的 HTML 中,但浏览器通常可以忽略它......他们只是在幕后添加它。

于 2009-03-05T01:39:32.300 回答
34

如何使用 CSS :first-child 伪类:

.MyClass td:first-child { border: solid 1px red; }
于 2009-11-26T08:39:31.507 回答
8

这种风格:

table tr td { border: 1px solid red; }
td table tr td { border: none; }

给我:

这个 http://img12.imageshack.us/img12/4477/borders.png

但是,在这里使用类可能是正确的方法。

于 2009-03-05T01:47:44.043 回答
6

只需为 MyClass 中的表创建一个选择器。

.MyClass td {border: solid 1px red;}
.MyClass table td {border: none}

(一般适用于所有内表,您也可以这样做table table td。)

于 2009-03-05T01:48:54.803 回答
3

我想设置表格第一列的宽度,我发现这很有效(在 FF7 中)——第一列是 50px 宽:

#MyTable>thead>tr>th:first-child { width:50px;}

我的标记在哪里

<table id="MyTable">
 <thead>
  <tr>
   <th scope="col">Col1</th>
   <th scope="col">Col2</th>
  </tr>
 </thead>
 <tbody>
   ...
 </tbody>
</table>
于 2011-10-13T22:57:08.747 回答
3

我想,它会起作用的。

.Myclass tr td:first-child{ }

 or 

.Myclass td:first-child { }
于 2014-03-14T10:30:48.290 回答
2

我想你可以试试

table tr td { color: red; }
table tr td table tr td { color: black; }

或者

body table tr td { color: red; }

其中 'body' 是表父级的选择器

但是上课很可能是去这里的正确方式。

于 2009-03-05T01:39:14.500 回答