使用第 n 类型的计数器
Using counter with nth type
是否可以使用 nth-type
这样的计数器:
td:nth-of-type(counter(section)):before {
content: "Date"counter(section);
counter-increment: section;
}
计数器初始化为
#myTable tr {
border: 1px solid #ccc;
counter-reset: section;counter-increment: section;
}
我想做的是这个 - 检查 tr
是否有 class iR,如果有,结构如下所示:
table.myTable td:nth-of-type(1):before { content: "Date"; }
table.myTable td:nth-of-type(2):before { content: "Fajr"; }
table.myTable td:nth-of-type(3):before { content: "Fr"; }
table.myTable td :nth-of-type(4):before { content: "Se"; }
table.myTable td:nth-of-type(5):before { content: "Dr"; }
table.myTable td:nth-of-type(6):before { content: " "; }
table.myTable td:nth-of-type(7):before { content: "A"; }
table.myTable td:nth-of-type(8):before { content: " "; }
table.myTable td:nth-of-type(9):before { content: "Mb"; }
table.myTable td:nth-of-type(10):before { content: " "; }
table.myTable td:nth-of-type(11):before { content: "I"; }
table.myTable td:nth-of-type(12):before { content: ""; }
没有就变成这样
table.myTable td:nth-of-type(1):before { content: "Date"; }
table.myTable td:nth-of-type(2):before { content: "Fr"; }
table.myTable td :nth-of-type(3):before { content: "Se"; }
table.myTable td:nth-of-type(4):before { content: "Dr"; }
table.myTable td:nth-of-type(5):before { content: "A"; }
table.myTable td:nth-of-type(6):before { content: "Mb"; }
table.myTable td:nth-of-type(7):before { content: "I"; }
这是我正在尝试做的 jsfiddle
https://jsfiddle.net/wj5gnafm/1/
根据现在提供的 fiddle,您甚至不需要 counter
。您应该能够通过使用我在原始答案中提到的 class 和否定选择器来实现这一点。下面是一个示例片段。
td {
border: 1px solid;
}
table tr.iRow td:nth-of-type(1):before {
content: 'Date ';
}
table tr.iRow td:nth-of-type(2):before {
content: 'Fr ';
}
table tr.iRow td:nth-of-type(3):before {
content: '';
}
table tr.iRow td:nth-of-type(4):before {
content: 'Se ';
}
table tr.iRow td:nth-of-type(5):before {
content: 'Dr ';
}
table tr.iRow td:nth-of-type(6):before {
content: '';
}
table tr.iRow td:nth-of-type(7):before {
content: 'A ';
}
table tr.iRow td:nth-of-type(8):before {
content: '';
}
table tr.iRow td:nth-of-type(9):before {
content: 'Mb ';
}
table tr.iRow td:nth-of-type(10):before {
content: '';
}
table tr.iRow td:nth-of-type(11):before {
content: 'I ';
}
table tr.iRow td:nth-of-type(12):before {
content: '';
}
table tr:not(.iRow) td:nth-of-type(1):before {
content: 'Date ';
}
table tr:not(.iRow) td:nth-of-type(2):before {
content: 'Fr ';
}
table tr:not(.iRow) td:nth-of-type(3):before {
content: 'Se ';
}
table tr:not(.iRow) td:nth-of-type(4):before {
content: 'Dr ';
}
table tr:not(.iRow) td:nth-of-type(5):before {
content: 'A ';
}
table tr:not(.iRow) td:nth-of-type(6):before {
content: 'Mb ';
}
table tr:not(.iRow) td:nth-of-type(7):before {
content: 'I ';
}
<table>
<tr class='iRow'>
<td>A</td>
<td>B</td>
<td>C</td>
<td>D</td>
<td>E</td>
<td>F</td>
<td>G</td>
<td>H</td>
<td>I</td>
<td>J</td>
<td>K</td>
<td>L</td>
</tr>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
<td>D</td>
<td>E</td>
<td>E</td>
<td>E</td>
</tr>
</table>
原问题的答案:
正如我在对问题的评论中提到的,您不能将计数器的值作为参数传递给 nth-of-type
(或任何其他 nth-*
)选择器。
只有在存在所需的 class 时(通过使用 class 选择器)执行 counter-increment
并使用 :not([classname])
递增其他柜台。
显示值时,使用选择器中的class或class-否定,然后根据需要显示值。下面是一个示例片段。
table {
counter-reset: section, section-other;
}
table, tr, td {
border: 1px solid;
}
table tr.iRow {
counter-increment: section;
background: sandybrown; /* just for distinction */
}
table .iRow td:nth-of-type(1):before {
content: "Foo." counter(section)" ";
}
table .iRow td:nth-of-type(2):before {
content: "Bar." counter(section)" ";
}
table .iRow td:nth-of-type(3):before {
content: "Baz." counter(section)" ";
}
table tr:not(.iRow) {
counter-increment: section-other;
background: wheat; /* just for distinction */
}
table tr:not(.iRow) td:nth-of-type(1):before {
content: "ooF." counter(section-other)" ";
}
table tr:not(.iRow) td:nth-of-type(2):before {
content: "raB." counter(section-other)" ";
}
table tr:not(.iRow) td:nth-of-type(3):before {
content: "zaB." counter(section-other)" ";
}
<table>
<tr class='iRow'>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr class='iRow'>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr class='iRow'>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr class='iRow'>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr>
<td>A</td><td>B</td><td>C</td>
</tr>
</table>
是否可以使用 nth-type
这样的计数器:
td:nth-of-type(counter(section)):before {
content: "Date"counter(section);
counter-increment: section;
}
计数器初始化为
#myTable tr {
border: 1px solid #ccc;
counter-reset: section;counter-increment: section;
}
我想做的是这个 - 检查 tr
是否有 class iR,如果有,结构如下所示:
table.myTable td:nth-of-type(1):before { content: "Date"; }
table.myTable td:nth-of-type(2):before { content: "Fajr"; }
table.myTable td:nth-of-type(3):before { content: "Fr"; }
table.myTable td :nth-of-type(4):before { content: "Se"; }
table.myTable td:nth-of-type(5):before { content: "Dr"; }
table.myTable td:nth-of-type(6):before { content: " "; }
table.myTable td:nth-of-type(7):before { content: "A"; }
table.myTable td:nth-of-type(8):before { content: " "; }
table.myTable td:nth-of-type(9):before { content: "Mb"; }
table.myTable td:nth-of-type(10):before { content: " "; }
table.myTable td:nth-of-type(11):before { content: "I"; }
table.myTable td:nth-of-type(12):before { content: ""; }
没有就变成这样
table.myTable td:nth-of-type(1):before { content: "Date"; }
table.myTable td:nth-of-type(2):before { content: "Fr"; }
table.myTable td :nth-of-type(3):before { content: "Se"; }
table.myTable td:nth-of-type(4):before { content: "Dr"; }
table.myTable td:nth-of-type(5):before { content: "A"; }
table.myTable td:nth-of-type(6):before { content: "Mb"; }
table.myTable td:nth-of-type(7):before { content: "I"; }
这是我正在尝试做的 jsfiddle https://jsfiddle.net/wj5gnafm/1/
根据现在提供的 fiddle,您甚至不需要 counter
。您应该能够通过使用我在原始答案中提到的 class 和否定选择器来实现这一点。下面是一个示例片段。
td {
border: 1px solid;
}
table tr.iRow td:nth-of-type(1):before {
content: 'Date ';
}
table tr.iRow td:nth-of-type(2):before {
content: 'Fr ';
}
table tr.iRow td:nth-of-type(3):before {
content: '';
}
table tr.iRow td:nth-of-type(4):before {
content: 'Se ';
}
table tr.iRow td:nth-of-type(5):before {
content: 'Dr ';
}
table tr.iRow td:nth-of-type(6):before {
content: '';
}
table tr.iRow td:nth-of-type(7):before {
content: 'A ';
}
table tr.iRow td:nth-of-type(8):before {
content: '';
}
table tr.iRow td:nth-of-type(9):before {
content: 'Mb ';
}
table tr.iRow td:nth-of-type(10):before {
content: '';
}
table tr.iRow td:nth-of-type(11):before {
content: 'I ';
}
table tr.iRow td:nth-of-type(12):before {
content: '';
}
table tr:not(.iRow) td:nth-of-type(1):before {
content: 'Date ';
}
table tr:not(.iRow) td:nth-of-type(2):before {
content: 'Fr ';
}
table tr:not(.iRow) td:nth-of-type(3):before {
content: 'Se ';
}
table tr:not(.iRow) td:nth-of-type(4):before {
content: 'Dr ';
}
table tr:not(.iRow) td:nth-of-type(5):before {
content: 'A ';
}
table tr:not(.iRow) td:nth-of-type(6):before {
content: 'Mb ';
}
table tr:not(.iRow) td:nth-of-type(7):before {
content: 'I ';
}
<table>
<tr class='iRow'>
<td>A</td>
<td>B</td>
<td>C</td>
<td>D</td>
<td>E</td>
<td>F</td>
<td>G</td>
<td>H</td>
<td>I</td>
<td>J</td>
<td>K</td>
<td>L</td>
</tr>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
<td>D</td>
<td>E</td>
<td>E</td>
<td>E</td>
</tr>
</table>
原问题的答案:
正如我在对问题的评论中提到的,您不能将计数器的值作为参数传递给 nth-of-type
(或任何其他 nth-*
)选择器。
只有在存在所需的 class 时(通过使用 class 选择器)执行 counter-increment
并使用 :not([classname])
递增其他柜台。
显示值时,使用选择器中的class或class-否定,然后根据需要显示值。下面是一个示例片段。
table {
counter-reset: section, section-other;
}
table, tr, td {
border: 1px solid;
}
table tr.iRow {
counter-increment: section;
background: sandybrown; /* just for distinction */
}
table .iRow td:nth-of-type(1):before {
content: "Foo." counter(section)" ";
}
table .iRow td:nth-of-type(2):before {
content: "Bar." counter(section)" ";
}
table .iRow td:nth-of-type(3):before {
content: "Baz." counter(section)" ";
}
table tr:not(.iRow) {
counter-increment: section-other;
background: wheat; /* just for distinction */
}
table tr:not(.iRow) td:nth-of-type(1):before {
content: "ooF." counter(section-other)" ";
}
table tr:not(.iRow) td:nth-of-type(2):before {
content: "raB." counter(section-other)" ";
}
table tr:not(.iRow) td:nth-of-type(3):before {
content: "zaB." counter(section-other)" ";
}
<table>
<tr class='iRow'>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr class='iRow'>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr class='iRow'>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr class='iRow'>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr>
<td>A</td><td>B</td><td>C</td>
</tr>
<tr>
<td>A</td><td>B</td><td>C</td>
</tr>
</table>