:last-child
действительно единственный способ сделать это без изменения HTML - но, если вы можете это сделать, основной вариант - просто дать ему class="last-item"
, а затем сделать:
li.last-item { /* ... */ }
Очевидно, вы можете автоматизировать это на выбранном вами языке динамической генерации страниц. Кроме того, в W3C DOM есть свойство lastChild
JavaScript.
Вот пример того, что вы хотите сделать в Прототип :
$$("ul").each(function(x) { $(x.lastChild).addClassName("last-item"); });
Или еще проще:
$$("ul li:last-child").each(function(x) { x.addClassName("last-item"); });
В jQuery вы можете написать его еще более компактно:
$("ul li:last-child").addClass("last-item");
Также обратите внимание, что этот должен работать без использования фактического last-child
CSS-селектора - скорее, используется его реализация на JavaScript - поэтому он должен быть менее глючным и более надежным во всех браузерах.