使用CSS,我想隐藏除第一个元素以外的所有TH元素,我的格式如下:
<table>
<tbody>
<tr>
<th></th>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<th></th>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<th></th>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</tbody>
</table>
我也需要检查IE8的解决方案,因为我知道它们不支持Pseudo Elements,我正在尝试这样
th:not(:first-child):display:none;
但这不适用于任何浏览器
first-child
不是伪元素,而是伪类。无论如何,:not
仅接受“简单选择器”;first-child
不符合条件。但是在这里您first-child
还是不能使用,因为它适用于具有公共父元素的元素。
在这种情况下,您可能想将th
not隐藏在first中table
。所以
th { display: none; }
table:first-child th { display: block; }
这是“将X1的值应用于所有Y的某些属性,Z的值为X2除外”的情况下使用的标准CSS习惯用法。在一种普通的编程语言中,可能会使用if
涉及not
运算符的语句。在CSS中,利用规则顺序原则,您可以这样编写:
Y { property: X1; } // standard behavior comes first
Z ( property: X2; } // exceptional behavior comes next
在您的情况下,“标准行为”是隐藏th
,而“例外行为”是针对第一个显示。
您也许可以:not
在这种情况下使用,但是它并不总是能像您期望的那样运行,尤其是与其他选择器(包括其他)结合使用时:not
,更不用说“简单选择器”限制了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句