nth-child
selector just counts any child nodes, so .class1:nth-child(4)
means 'element that is the 4th child of the container and has class1
class', not 'the 4th element with that class in the container'. The nth-of-type
selector can select only elements of the specific type (tag name), so you can, e.g., count dt
elements separately from dd
elements in a dl
list. There is nth-child(4 of .class1)
syntax in CSS Selectors 4 draft, but it's currently supported only in the latest versions of Safari.
With the CSS supported by most browsers, you can 'reset the counter' after the element you want to exclude from counting and 'start the new counter' for the remaining part of the list:
.class1:nth-child(4n) {
list-style-type: circle;
}
.class1.class2, .class2 ~ .class1:nth-child(4n) {
list-style-type: disc;
}
.class2 ~ .class1:nth-child(4n + 1) {
list-style-type: circle;
}
and so on (see updated fiddle).
Alternatively, you can change the markup and use different tags instead of classes and nth-of-type
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…