kostenloser Webspace werbefrei: lima-city


Alternative(n) zu CSS :last-child ?

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    mhban

    mhban hat kostenlosen Webspace.


    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?

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Autor dieses Themas

    mhban

    mhban hat kostenlosen Webspace.

    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 ?
  5. 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>
  6. Autor dieses Themas

    mhban

    mhban hat kostenlosen Webspace.

    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
  7. 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>
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!