I am wondering if there is some way to change a CSS attribute for the last li
in a list using CSS. I have looked into using :last-child
, but this seems really buggy and I can't get it to work for me. I will use JavaScript to do this if necessary, but I want to know if anyone can think up a solution in CSS.
相关问题
- Views base64 encoded blob in HTML with PHP
- Is there a way to play audio on a mobile browser w
- HTML form is not sending $_POST values
- implementing html5 drag and drop photos with knock
- Adding a timeout to a render function in ReactJS
I've done this with pure CSS (probably because I come from the future - 3 years later than everyone else :P )
Supposing we have a list:
Then we can easily make the text of the last item red with:
You could use jQuery and do it as such way
:last-child
is really the only way to do it without modifying the HTML - but assuming you can do that, the main option is just to give it aclass="last-item"
, then do:Obviously, you can automate this in the dynamic page generation language of your choice. Also, there is a
lastChild
JavaScript property in the W3C DOM.Here's an example of doing what you want in Prototype:
Or even more simply:
In jQuery, you can write it even more compactly:
Also note that this should work without using the actual
last-child
CSS selector - rather, a JavaScript implementation of it is used - so it should be less buggy and more reliable across browsers.I usually combine CSS and JavaScript approaches, so that it works without JavaScript in all browsers but IE6/7, and in IE6/7 with JavaScript on (but not off), since they does not support the
:last-child
pseudo-class.