【问题标题】::even & :odd - resetting after each sub heading:even & :odd - 在每个子标题后重置
【发布时间】:2019-10-28 22:21:58
【问题描述】:

我有这张桌子:

<style>

    table thead tr { background-color: #D5D5D5 ; font-size:9pt}
    table tr.asmtHeader { background-color: #E3E3E3; }
    table tr.dataRow td { text-align: center; vertical-align: top; }
    table tr.dataRow:nth-child(odd) { background-color: #EFEFEF; }

</style>

<table>                
    <thead><tr><th></tr></thead>        
    <tr class="asmtHeader"><td></td></tr>
        <tr class="dataRow"><td></td></tr>
        <tr class="dataRow"><td>should be #EFEFEF</td></tr>
        <tr class="dataRow"><td></td></tr>
    <tr class="asmtHeader"><td></td></tr>
        <tr class="dataRow"><td></td></tr>
        <tr class="dataRow"><td>should be #EFEFEF</td></tr>
        <tr class="dataRow"><td></td></tr>
        <tr class="dataRow"><td>should be #EFEFEF</td></tr>         
</table>

目标是仅对 class="dataRow" 进行斑马条纹处理,但始终在 class="asmtHeader" 之后的第一个上清除。如果我删除 'table tr.dataRow:nth-child(odd)' 样式并添加此行,它将排除 asmtHeader,但不会重置偶数/奇数:

$("tr.dataRow:odd").css( {
    "background": "#EFEFEF", 
    "text-align": "center", 
    "vertical-align": "top" });  

有没有办法让偶数/奇数重置?

【问题讨论】:

  • 不幸的是 nth-child 是一个元素选择器。鉴于您似乎有一个标题行在您的表格中重复,标题下方的部分(包括标题行)不应该在他们自己的表格中以使其在语义上更正确吗?
  • Pete,我看到了一些关于将每个小节放入 的内容,这就是我现在正在做的事情。据我了解, 之后不能有 。
  • 出于好奇,您为什么需要 jQuery 来实现这种样式?它可以并且已经在您的 CSS 中完成。

标签: jquery css html-table


【解决方案1】:

我可以看到 asmtHeader 应该是一个表头,所以为什么不让它成为 th。你可以复杂化 jquery 搜索第一个 asmtHeader 可以找到然后在下一个 tr 上给出单独的类,然后再次搜索下一个asmtHeader(a loop so) 但是这个解决方案使用 css 和 js 并且很复杂。

基于这个问题https://graphicdesign.stackexchange.com/questions/25941/trouble-zebra-striping-a-table-with-children-with-css 你可以使用

            <tr><th>Parent 1</th></tr>
            <tr><td>Child A</td></tr>
            <tr><td>Child B</td></tr>
            <tr><td>Child C</td></tr>

结构。您可以在此处找到该主题的示例http://jsfiddle.net/3MH9h/

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签