Alternative(n) zu CSS :last-child ?
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
attribut
auswahl
code
dom
drittes element
dynamischer anzahl
element
erstes element
funktion
http
last
letzte element
letzten element
letzten listen
liste
machen
starten
url
viertes element
zweites element
-
Hallo
ich habe ine Liste mit dynamischer Anzahl an Listen-Elementen
und möchte im letzten <li> eine besondere CSS-Eigenschaft anwenden
aber mit li:last-child bekomme ich im CSS Validator eine Fehlermeldung (und greift nicht im IE)
ul li { border:none; } ul li:last-child { border-bottom: 1px solid #444444; }
gibt es andere Möglichkeiten um dem letzten Listen-Element
ein anderes CSS zu geben als allen anderen in der Liste?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Nein GIbt es nicht.
Alternative vorschläge:
-Mit Javascript
-Indem Du dem letzten listen Element ein weiteres class-attribut gibst
-Du könntest Dem <ul>-element dieses Attribut verpassen (border-bottom: zb )
-Mittels php dem letzten li-element dynamisch ein weiteres class-attribut geben
Beitrag zuletzt geändert: 20.10.2011 20:08:37 von simuliertes -
Hallo
habe es mit JavaScript versucht, klappt aber leider nicht
<script type="text/javascript"> function highlightLastLI() { var liList, liTag; var ulTag = document.getElementsByTagName("#menue ul"); liList = ulTag.getElementsByTagName("li"); liTag = liList[liList.length - 1]; liTag.className = "last"; } </script>
die Liste steckt in einem DIV mit id menue
<div id="menue"> <ul> <li>Erstes Element</li> <li>Zweites Element</li> <li>Drittes Element</li> <li>Viertes Element</li> </ul> </div>
die CSS Klasse für das letzte Element habe ich als .last
.last {
border-bottom: 1px solid #444444;
}
wenn ich dem letzten Element per Hand die Klasse zuweise
<li class="last">Viertes Element</li>
dann geht es
was ist falsch im JS ?
-
mhban schrieb:
Hallo
habe es mit JavaScript versucht, klappt aber leider nicht
[...]
was ist falsch im JS ?
Das geht:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script type="text/javascript"> function highlightLastLI() { var liList, liTag; var ulTag = document.getElementById("menue"); liList = ulTag.getElementsByTagName("li"); liTag = liList[liList.length - 1]; liTag.className = "last"; } </script> </head> <body onLoad="highlightLastLI()"> <div id="menue"> <ul> <li>Erstes Element</li> <li>Zweites Element</li> <li>Drittes Element</li> <li>Viertes Element</li> </ul> </div> </body> </html>
-
aha
also Quasi als Selektor nur menue und die Funktion mit onLoad starten
wusste nicht das man zur Auswahl ein DOM Element überspringen kann (ul)
und muss ich es mit onLoad machen oder kann ich den Code einfach ohne Funktion schreiben?
so das es "von selber" ausgeführt wird ? ... denn onLoad im Body gefällt mir garnicht
-
mhban schrieb:
aha
also Quasi als Selektor nur menue und die Funktion mit onLoad starten
wusste nicht das man zur Auswahl ein DOM Element überspringen kann (ul)
Das macht die Funktion getElementsByTagName (der Name sagt es ja eigentlich bereits).
Hier werden innerhalb des Knotens mit der id menue alle <li>-tags ausgewählt.
mhban schrieb:
und muss ich es mit onLoad machen oder kann ich den Code einfach ohne Funktion schreiben?
so das es "von selber" ausgeführt wird ? ... denn onLoad im Body gefällt mir garnicht
Du kannst es auch so machen (ich habe jetzt auch mal style attribute für last vergeben):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <style type="text/css"> .last{border-bottom: red 1px solid; display: inline;} </style> <script type="text/javascript"> function highlightLastLI() { var liList, liTag; var ulTag = document.getElementById("menue"); liList = ulTag.getElementsByTagName("li"); liTag = liList[liList.length - 1]; liTag.className = "last"; } window.onload = highlightLastLI; </script> </head> <body > <div id="menue"> <ul> <li>Erstes Element</li> <li>Zweites Element</li> <li>Drittes Element</li> <li>Viertes Element</li> </ul> </div> </body> </html>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage