2009-03-05 79 views
104

是否有将类样式应用于td标签的一个级别的方法?将样式应用于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> 

回答

179

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

*

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

但是! '>'直接子选择器在IE6中不起作用。如果您需要支持的浏览器(你可能做的,唉),所有你能做的就是单独选择内部元件和未设置样式:

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

*注意,第一示例引用了在HTML中未找到的tbody元素。它应该已经在你的HTML,但浏览器通常可以放弃它......他们只是在幕后添加它。

+0

您的第一个片段(使用子选择器)在Firefox 3.0.1中似乎不起作用。我在'这不应该有'部分附近出现红色边框。 – 2009-03-05 01:49:43

+0

这不适用于Chrome – bstoney 2009-03-05 01:49:59

+1

您的第二个示例是正确的,但您的第一个示例将在所有内容上添加边框。 “.MyClass> tr> td”可能会工作(在良好的浏览器中) – nickf 2009-03-05 01:50:14

2

我想你可以尝试

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

或者

body table tr td { color: red; } 

其中“身体是你的表的父

选择,但类是最有可能的正确方法去这里。

6

只需为MyClass中的表选择器。

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

(一般地适用于所有内表,你也可以做table table td。)

46

如何使用CSS:第一个孩子伪类:

.MyClass td:first-child { border: solid 1px red; } 
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> 
4

我认为,它将工作。

.Myclass tr td:first-child{ } 

or 

.Myclass td:first-child { } 
相关问题