Ripei: Einzigstes Kind vom Elternelement ansprechen

Hallo Leute

Ich habe eine Frage:

Das Navigations-Menü der Homepage, die ich grade bearbeite besitzt eine stinknormale Liste:

<ul>
  <li><a>Seite 1</a></li>
  <ul>
    <li><a>Seite 1.1</a></li>
    <li><a>Seite 1.2</a></li>
    <li><a>Seite 1.3</a></li>
  </ul>
  <li><a>Seite 2</a></li>
  <ul>
    <li><a>Seite 2.1</a></li>
  </ul>
  <li><a>Seite 3</a></li>
</ul>

Ich möchte jetzt den Hintergrund des Menüpunktes 2.1 ändern bzw. ansprechen. Diesen möchte ich ansprechen, weil er das einzigste Element in der Sub-liste ist. Wie mache ich das? Weil mit Nachbar-Selektor ist das ja meiner Meinung nach nicht realisierbar oder? Ich weiß, dass das bei CSS3 mit ":only-child" möglich sein wird... aber ich glaub solange werde ich nicht warten ;)
Ich hoffe ihr versteht was ich meine...

Aja.. und der HTML Code darf/kann nicht geändert werden.

mfg Ripei

  1. Hi,

    Diesen möchte ich ansprechen, weil er das einzigste Element in der Sub-liste ist.

    oh, es ist also noch einziger als das einzige? Einzigstartig.

    Ich weiß, dass das bei CSS3 mit ":only-child" möglich sein wird... aber ich glaub solange werde ich nicht warten ;)

    Das einzige Kind seiner Eltern ist gleichzeitig das erste und das letzte.

    Ich hoffe ihr versteht was ich meine...

    Dito ;-)

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo...

      oh, es ist also noch einziger als das einzige? Einzigstartig.

      klar wenn es schon allein ist, dann soll es auch gleicb richtig alleine sein ;)

      Das einzige Kind seiner Eltern ist gleichzeitig das erste und das letzte.

      jo, das ist mir schon klar... nur wie willst du das ansprechen?
      Wenn du weist wie das realisierbar ist, könntest du mir das dann bitte gleich mit dem Code zeigen? Wäre nett :)

      Ripei

      1. Hi,

        oh, es ist also noch einziger als das einzige? Einzigstartig.
        klar wenn es schon allein ist, dann soll es auch gleicb richtig alleine sein ;)

        okay, wenigstens bist Du konsequent ;-)

        Das einzige Kind seiner Eltern ist gleichzeitig das erste und das letzte.
        jo, das ist mir schon klar... nur wie willst du das ansprechen?

        Wenn das einzige Kind per ":only-child" angesprochen wird, mit was spricht man dann wohl das erste bzw. das letzte Kind an?

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. hey...

          Wenn das einzige Kind per ":only-child" angesprochen wird, mit was spricht man dann wohl das erste bzw. das letzte Kind an?

          thx, für die rasche antwort... die sache ist nur die, dass :only-child erst mit CSS3 offiziell eingeführt wird, und bis jetzt wird es glaub ich nur vom firefox interpretiert...d.h. mit only-child kann ich es nicht machen...

          mfg Ripei

          1. Hallo Ripei,

            thx, für die rasche antwort... die sache ist nur die, dass :only-child erst mit CSS3 offiziell eingeführt wird, und bis jetzt wird es glaub ich nur vom firefox interpretiert...d.h. mit only-child kann ich es nicht machen...

            Au weia. Denk mal mit. Nimm nicht only-child sondern first-child und last-child.

            Jonathan

            1. Au weia. Denk mal mit. Nimm nicht only-child sondern first-child und last-child.

              hmmm... also sry, ich bin glaub ich grad ein bisschen auf dem holzweg^^
              ich müsste die dann quais verUNDen...
              also wenn es das erste UND das letzte element ist.
              wie soll das mit CSS gehen??
              Ripei

              1. Hi,

                Au weia. Denk mal mit. Nimm nicht only-child sondern first-child und last-child.

                hmmm... also sry, ich bin glaub ich grad ein bisschen auf dem holzweg^^
                ich müsste die dann quais verUNDen...

                Wieso? Du sprachst selber vom einzigsten (sic!) Kind - das ist sowohl das erste, als auch das letzte. Einer dieser Selektoren waere in dem Falle also ausreichend.

                also wenn es das erste UND das letzte element ist.

                Dann ist es auch ODER.

                MfG ChrisB

                1. Hi...

                  Wieso? Du sprachst selber vom einzigsten (sic!) Kind - das ist sowohl das »» erste, als auch das letzte. Einer dieser Selektoren waere in dem Falle also »» ausreichend.

                  stimmt... prinzipiell. aber schau mal plz bei der antwort die ich Cheatah oberhalb gegeben habe... dann verstehst du vllt. was ich meine...
                  also der code würde dann nach dir so ausschaun.
                  ul li ul > li:first-child{}
                  dadurch würden aber gegebenenfalls auch andere li-untermenüs angesprochen werden, die gar nicht alleine in einem ul sind...
                  Ripei

                  1. Hi,

                    Wieso? Du sprachst selber vom einzigsten (sic!) Kind - das ist sowohl das »» erste, als auch das letzte. Einer dieser Selektoren waere in dem Falle also »» ausreichend.
                    also der code würde dann nach dir so ausschaun.

                    nein, würde er nicht.

                    ul li ul > li:first-child{}
                    dadurch würden aber gegebenenfalls auch andere li-untermenüs angesprochen werden, die gar nicht alleine in einem ul sind...

                    Richtig. Das einzige Kind ist nämlich gleichzeitig erstes *und* letztes Kind. Nicht nur das erste.

                    Cheatah

                    --
                    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                    X-Will-Answer-Email: No
                    X-Please-Search-Archive-First: Absolutely Yes
              2. Hi,

                ich müsste die dann quais verUNDen...
                also wenn es das erste UND das letzte element ist.
                wie soll das mit CSS gehen??

                wie verUNDest Du denn, dass ein Element beispielsweise die ID "foo" besitzt und die Klasse "bar", oder den Namen "li" und die Klasse "qaz"?

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
                1. wie verUNDest Du denn, dass ein Element beispielsweise die ID "foo" besitzt und die Klasse "bar", oder den Namen "li" und die Klasse "qaz"?

                  hab endlich gecheckt, was du meinst...
                  zu deinem bsp. #fo.bar bzw. li.qaz
                  sorry... das ganze ist klarerweise mein fehler, wie ich oben bereits erwähnt habe, kann ich den html code nicht verändern. Ich habe mich schlecht ausgedrückt: ich kann den html code nicht verändern und ich kann auch keine id's bzw. classen an einbauen... weil der ganze spaß in php geschrieben ist. (ich = kein PHP'ler^^). zur allgemeinen info: ich verwende das CMS Drupal, und wollte das dann halt einfach bei den stylesheets ein bisschen ändern ohne die PHP dateien zu ändern. naja.. dann werd ich mal bei den phps bei drupal reinschaun.

                  Ripei

                  1. Hi,

                    wie verUNDest Du denn, dass ein Element beispielsweise die ID "foo" besitzt und die Klasse "bar", oder den Namen "li" und die Klasse "qaz"?
                    hab endlich gecheckt, was du meinst...

                    na, da bin ich noch nicht so ganz sicher ...

                    zu deinem bsp. #fo.bar bzw. li.qaz

                    So weit, so gut.

                    sorry... das ganze ist klarerweise mein fehler, wie ich oben bereits erwähnt habe, kann ich den html code nicht verändern. Ich habe mich schlecht ausgedrückt: ich kann den html code nicht verändern und ich kann auch keine id's bzw. classen an einbauen...

                    Das sollst Du auch genauso wenig tun, wie Du Auslassungszeichen in "IDs" einbauen sollst.

                    weil der ganze spaß in php geschrieben ist.

                    "Weil es strukturell falsch ist" würde als Begründung schon reichen :-)

                    (ich = kein PHP'ler^^). zur allgemeinen info: ich verwende das CMS Drupal, und wollte das dann halt einfach bei den stylesheets ein bisschen ändern ohne die PHP dateien zu ändern. naja.. dann werd ich mal bei den phps bei drupal reinschaun.

                    Warum? Du möchtest Deinen CSS-Code ändern, und genau dazu raten wir Dir hier alle. Warum also tust Du es dann nicht auch?

                    Cheatah

                    --
                    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                    X-Will-Answer-Email: No
                    X-Please-Search-Archive-First: Absolutely Yes
                    1. Hi...

                      na, da bin ich noch nicht so ganz sicher ...

                      naja.. spätestens jetzt hab ichs komplett gecheckt... es funzt nämlich... mir kam das vom aussehen her ein bisschen komisch vor ^^, bzw. ich wäre auch gar nicht auf die idee gekommen es so zu machen. Also falls wer das gleiche problem hat wie ich, dann macht es einfach so:

                      ul li ul > li:first-child:last-child{}

                      Warum? Du möchtest Deinen CSS-Code ändern, und genau dazu raten wir Dir hier alle. Warum also tust Du es dann nicht auch?

                      hast recht ^^... vielen dank nochmal an dich, dass du dich solange mit mir geduldet hast ;)

                      lg Ripei

                      1. Ok, nachdem wir das obige Problem geklärt hätten, bin ich soeben drauf gekommen, dass der IE :last-child nicht interpertiert!?
                        Was mach ich jetzt am besten? bzw. gibts da überhaupt ne lösung dafür?
                        Ripei

          2. Hi,

            Wenn das einzige Kind per ":only-child" angesprochen wird, mit was spricht man dann wohl das erste bzw. das letzte Kind an?
            thx, für die rasche antwort... die sache ist nur die, dass :only-child erst mit CSS3 offiziell eingeführt wird, und bis jetzt wird es glaub ich nur vom firefox interpretiert...d.h. mit only-child kann ich es nicht machen...

            dann nimm doch einfach die beiden Alternativen für das erste und für das letzte Kind.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
    2. Hi,

      oh, es ist also noch einziger als das einzige? Einzigstartig.

      Du meinst bestimmt "am allereinigstartigstesten".
      (wie lautet dazu eigentlich der Komparativ bzw. Superlativ?)

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      O o ostern ...
      Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. N'Abend!

        oh, es ist also noch einziger als das einzige? Einzigstartig.

        Du meinst bestimmt "am allereinigstartigstesten".

        Ja, so wäre es viel richtiger, valider und bedeutungsschwangerer.
        *scnr*

        Viele Grüße vom Længlich

  2. Hi,

    Das Navigations-Menü der Homepage, die ich grade bearbeite besitzt eine stinknormale Liste:

    Die ist nicht stinknormal, die ist kaputt.

    <ul>
      <li><a>Seite 1</a></li>
      <ul>

    ul darf als Kinder nur li enthalten, nicht ul.

    <li><a>Seite 2</a></li>
      <ul>

    Nein, auch beim zweiten Versuch noch nicht.

    Wenn das innere ul das Untermenü zum jeweils in Deinem Code davorstehenden li gehört, dann gehört das ul _IN_ das li, nicht danach.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  3. Hallo,

    Geht zum Beispiel so:

    Stilefinition:

      
    ul > li + li + li +  li > ul > li:first-child a {color:red;}  
    
    

    (valide!)Liste:

      
    <ul>  
        <li><a>Seite 1</a></li>  
        <li>  
            <ul>  
                <li><a>Seite 1.1</a></li>  
                <li><a>Seite 1.2</a></li>  
            </ul>  
        </li>  
        <li><a>Seite 2</a></li>  
        <li>  
            <ul>  
                <li><a>Seite 2.1</a></li>  
                <li><a>Seite 2.2</a></li>  
            </ul>  
        </li>  
        <li><a>Seite 3</a></li>  
    </ul>  
    
    

    Gruß, Nils

  4. Ok, nachdem wir das obige Problem geklärt hätten, bin ich soeben drauf gekommen, dass der IE :last-child nicht interpertiert!?
    Was mach ich jetzt am besten?
    Ripei

    1. Hallo Ripei,

      Ok, nachdem wir das obige Problem geklärt hätten, bin ich soeben drauf gekommen, dass der IE :last-child nicht interpertiert!?

      Eigentlich dürfte der IE bis Version 6 nichtmal first-child interpretieren. In dem Fall musst du dir halt ne Lösung basteln, indem du den Element ne eigene Klasse gibst. Je nach Anwendungsbereich z.B. statisch oder über ne serverseitige Programmiersprache oder mit JS.

      Jonathan