Dave: Formatierungen für übergeordnete Elemente

Hallo Forum,

gibt es eine Möglichkeit, in CSS Formatierungen folgender Art vorzunehmen:

<ul>
<li>

<ul><li></li></ul>

</li>
<li></li>
<li></li>
</ul>

In diesem Besipiel für das Element li, welches eine weitere Liste enthält? Ich weiss, dass es mit Klassen gehen würde. Das ist in meinem Fall jedoch etwas umständlich. Gibt es also Umschreibungen für

"Das Element li in der Konstruktion li>ul"?

Vielen Dank

mfg Dave

  1. Hallo Dave,

    "Das Element li in der Konstruktion li>ul"?

    li ul li { ... }

    Wenn es direkte Kinder sein sollen:

    li > ul > li { ... }

    (kapiert der IE aber nicht)

    Viele Grüße,
    Christian

    1. Nein, so habe ich das nicht gemeint.

      Mal mit Klassen:

      <ul>
      <li class="umschrieben">

      <ul><li class="deinemethode"></li></ul>

      </li>
      <li></li>
      <li></li>
      </ul>

      Ich will dem Element mit class="umschrieben" etwas zuordnen. Nach deiner Methode wird dem Element mit class="deinemethode" etwas zugeordnet. War das jetzt verständlicher?

      mfg Dave

      1. Hallo Dave,

        Ich will dem Element mit class="umschrieben" etwas zuordnen. Nach deiner Methode wird dem Element mit class="deinemethode" etwas zugeordnet. War das jetzt verständlicher?

        Ja. Allerdings ist das meines Wissens nicht möglich, auch nicht mit CSS3.

        Viele Grüße,
        Christian

      2. Hallo Dave,

        <ul>
        <li class="umschrieben">
        <ul><li class="deinemethode"></li></ul>
        </li>
        <li></li>
        <li></li>
        </ul>

        Was spricht gegen die folgende Notation?

        body > ul > li { ... }

        Viele Grüße,
        Stefan

        --
        http://www.favicon.de/
        http://www.sidebar.de/
        Wer sich von meinen Forumsbeiträgen in irgendeiner Art und Weise ge-
        langweilt fühlt, der trägt bitte meinen Namen in seine Blacklist ein.
        1. Hi Stefan,

          Was spricht gegen die folgende Notation?

          body > ul > li { ... }

          Das würde ja alle Elemente dieser Art ansprechen. Ich will aber, dass nur di <li>-Elemente angesprochen werden, de nochmal eine <ul> enthalten.

          mfg Dave

          1. Hallo Dave,

            Das würde ja alle Elemente dieser Art ansprechen. Ich will aber, dass nur di
            <li>-Elemente angesprochen werden, de nochmal eine <ul> enthalten.

            Also die li-Elemente im Dokumentenbaum, die Eltern eines ul-Elementes sind.

            Kurz: Das geht nicht.

            Lang: Ich habe vor ein paar Tagen etwas rumrecherchiert, nach Möglichkeiten,
            einen Elternselektor (sowas wie E < F) zu haben. Es geht nicht. Auch in CSS 3
            ist sowas nicht geplant. Es gab zwar mehrere Ansätze dazu (:contains, :subject), wie ich nach einer längeren Recherchen in den Archiven der
            öffentlichen Mailingliste herausgefunden habe, aber alle wurden
            abgeschmettert.

            Der Grund? So wie ich das herausgelesen habe, schmettert die Working Group
            solche Vorschläge immer im vorrauseilenden Gehorsem gegenüber den Herstellern
            von Browsern ab und zwar unter Berufung auf Performanceprobleme. Es geht
            darum, daß man das (HTML)-Dokument bzw. den Dokumentenbaum nicht nur
            vorwärts sondern dann auch rückwärts durchparsen müßte, um zutreffende
            Elemente für einen Elternselektor herauszufinden. Bislang geht das bei
            CSS immer nur in Abwärtsrichtung, deswegen heißt es ja Cascading Stylesheets.

            (Ja, ich finde diese Argumentation auch etwas schwach...)

            Was kannst Du jetzt machen? Dich entweder auf komplizierteres wie XSL(T)
            zu stürzen, denn anscheinend bietet die Selektortechnik XPath solche
            Funktionalitäten oder aber den Weg des geringsten Widerstandes zu gehen
            und Klassen einzufügen, um die betreffenden Elemente über diese anzusprechen.

            • Tim
            --
            tft-bm: Selektor, Parent, Eltern
        2. Hallo Stefan,

          Was spricht gegen die folgende Notation?

          body > ul > li { ... }

          Dass der IE es nicht kann?

          Viele Grüße,
          Christian