У меня есть XML-документ, который я пытаюсь стилизовать с помощью CSS. Соответствующий фрагмент этого XML-кода выглядит так:
<senseBlock>
<prelim>Not numbered</prelim>
<sense>first item</sense>
<sense>second item</sense>
<sense>third item</sense>
</senseBlock>
Мне нужно представить элементы <sense> в виде упорядоченного списка, но только если в списке более одного элемента <sense>. В списках с одним элементом <sense> мне нужно, чтобы он отображался как обычный абзац без каких-либо цифр.
Прямо сейчас я оформляю свой список таким образом, но я не знаю, как скрыть числа, когда есть только один элемент:
senseBlock {
display: block;
counter-reset: sense;
}
prelim {
display: block;
}
sense {
display: list-item;
list-style: decimal inside;
}
sense:before {
counter-increment: sense;
}
Я подумал об использовании смежного селектора, такого как sense + sense, для обнаружения нескольких элементов, но тогда он не будет стилизовать первый элемент в моем списке. Я в значительной степени пришел к выводу, что это невозможно без изменения XML, но решил, что передам эту задачу сообществу, прежде чем сдамся.
Это должно работать только в последней версии Safari для iPhone.






Ага! Я решил это сам, используя псевдоселектор CSS3 last-child. Этот CSS добился желаемого эффекта:
senseBlock {
display: block;
counter-reset: sense;
}
prelim {
display: block;
}
sense {
display: list-item;
list-style: decimal inside;
}
sense:before {
counter-increment: sense;
}
prelim + sense:last-child {
display: block;
}