Patzel: Index-Z: Objekt mit nidrigerem Wert ist weiter vorne.

Ich weiß, das die 'index-z'-Probleme schon nerven. Aber ich habe wirklich k. Ahnung wie so das ned geht:

Code (Sprache CSS)

 #menu ul.margin,ul.padding,ul.item1,ul.item2,ul.item3,ul.item4,ul.item5,ul.item6,ul.item7{z-index:2;background-color: transparent;}  
#menu ul.leiste{background:url(navi.jpg);display:block;position:absolute;right:70px;width:100%;z-index:1;text-align:left;display:block;} 

Code (Sprache:HTML)

  
<ul class="item7" ...>  
<li ...>  
<a ...>Text</a></li>  
<ul ...>  
<li ...><a ...><b>Text</b></li></a>  
</ul>  
</ul>  
<ul class="leiste">  
&nbsp;  
</ul>  

(Was ich will) Die ul.leiste sollte hinter dem anderen Zeugs (Zeugs = .item1, .item2,... ,.item7) liegen, aber (Was tatsächlich passiert) liegt in allen Browsern davor. (Andere Hinweise) Und bei Minuswerten der Leiste spinnt der MFF und zeigt die Leiste nicht an. K. Ahnung warum d. so is. (Nein, es sind keine Elternelemente mit index-z versehen.) Bitte um Hilfe.

lg

  1. #menu ul.leiste{background:url(navi.jpg);display:block;position:absolute;right:70px;width:100%;z-index:1;text-align:left;display:block;}

    tu dir selbst einen gefallen und schreib keinen "wurstcode" ;)

    <li ...><a ...><b>Text</b></li></a>

    font-weight; bold; tuts auch

    zudem hat du eine menge html fehler da drinnen und ein &nbsp; gehört defintiv nicht da hin
    geschütztes  leerzeichen

    (Was ich will) Die ul.leiste sollte hinter dem anderen Zeugs (Zeugs = .item1, .item2,... ,.item7) liegen, aber (Was tatsächlich passiert) liegt in allen Browsern davor. (Andere Hinweise) Und bei Minuswerten der Leiste spinnt der MFF und zeigt die Leiste nicht an. K. Ahnung warum d. so is. (Nein, es sind keine Elternelemente mit index-z versehen.) Bitte um Hilfe.

    größerer z-index != element ist weiter oben, ich denke du hast z-index nicht verstanden
    z-index

    1. #menu ul.leiste{background:url(navi.jpg);display:block;position:absolute;right:70px;width:100%;z-index:1;text-align:left;display:block;}
      tu dir selbst einen gefallen und schreib keinen "wurstcode" ;)

      <li ...><a ...><b>Text</b></li></a>
      font-weight; bold; tuts auch

      zudem hat du eine menge html fehler da drinnen und ein &nbsp; gehört defintiv nicht da hin
      geschütztes  leerzeichen

      (Was ich will) Die ul.leiste sollte hinter dem anderen Zeugs (Zeugs = .item1, .item2,... ,.item7) liegen, aber (Was tatsächlich passiert) liegt in allen Browsern davor. (Andere Hinweise) Und bei Minuswerten der Leiste spinnt der MFF und zeigt die Leiste nicht an. K. Ahnung warum d. so is. (Nein, es sind keine Elternelemente mit index-z versehen.) Bitte um Hilfe.

      größerer z-index != element ist weiter oben, ich denke du hast z-index nicht verstanden
      z-index

      1. Ja, aber hier ist der kleinere Weiter oben:

       #menu item7 /* Und das andere. Aber das ist unwichtig */  
      {z-index:2; /* Das liegt hier unten */ background-color: transparent;}  
      #menu ul.leiste  
      {display:block;position:absolute;right:70px; /* !!!! z-i...:1 und das liegt oben */ z-index:1;text-align:left;} 
      
        
      <ul class="item7" ...> <!-- Liegt hinten -->  
      <li ...>  
      <a ...>Text</a></li>  
      <ul ...>  
      <li ...><a ...><b>Text</b></li></a>  
      </ul>  
      </ul>  
      <ul class="leiste"> <!-- Liegt vorne -->  
      &nbsp;  
      </ul>  
      
      

      2. Was würdest du statt &nbsp; schreiben?

      3. Hast du eine Idee warum das so ned geht?

      lg

      1. @@Patzel:

        1. Was würdest du statt &nbsp; schreiben?

        In 'ul' darf kein Textinhalt vorkommen; es dürfen nur 'li'-Elemente vorkommen. Eins muss (was ich recht unsinnig finde). [HTML401 §10.2]

        1. Hast du eine Idee warum das so ned geht?

        Warum hast du vor deiner Antwort nicht alle bereits im Thread vorhandenen Antworten gelesen?

        Live long and prosper,
        Gunnar

        --
        Flughafen in Tempelhof
        findet jeder Hempel doof.
        1. Hallo.

          In 'ul' darf kein Textinhalt vorkommen; es dürfen nur 'li'-Elemente vorkommen. Eins muss (was ich recht unsinnig finde).

          Unsinnig findest du aber doch hoffentlich und wahrscheinlich nur, dass ein einzelnes genügt.
          MfG, at

          1. @@at:

            In 'ul' darf kein Textinhalt vorkommen; es dürfen nur 'li'-Elemente vorkommen. Eins muss (was ich recht unsinnig finde).

            Unsinnig findest du aber doch hoffentlich und wahrscheinlich nur, dass ein einzelnes genügt.

            Nein, IMHO sollte in der DTD nicht <!ELEMENT ul (li)+>, sondern <!ELEMENT ul (li)*> stehen; also kein 'li'-Element in 'ul' notwendig sein.

            Wenn man die Liste nun dynamisch mit JavaScript erzeugen will, muss man entweder das 'ul'-Element auch dynamisch erzeugen oder ein 'li'-Dummy in die Liste setzen und dieses mit JavaScript löschen. Schöner wärs doch, man könnte '<ul id="myList"></ul>' im HTML-Quelltext schreiben.

            'ol' entsprechend, und auch:
            <!ELEMENT dl (dt|dd)*>
            <!ELEMENT thead    (tr)*>
            <!ELEMENT tfoot    (tr)*>
            <!ELEMENT tbody    (tr)*>
            <!ELEMENT tr       (th|td)*>

            Live long and prosper,
            Gunnar

            --
            Flughafen in Tempelhof
            findet jeder Hempel doof.
            1. Mahlzeit,

              Nein, IMHO sollte in der DTD nicht <!ELEMENT ul (li)+>, sondern <!ELEMENT ul (li)*> stehen; also kein 'li'-Element in 'ul' notwendig sein.

              Eine Liste ohne Listenpunkte halte ich sehr wohl für unsinnig. Und die Jungs vom W3C anscheinend genauso. Sie wäre dann nur ein leerer Container - und dafür ist AFAIK <div> da ...

              Auf die anderen von Dir genannten Elemente trifft es in meinen Augen auch zu, dass sie inhaltslos unsinnig sind (wenn ich eine Tabelle ohne Zeilen, d.h. ohne Inhalt habe, brauche ich auch keine Tabelle - streng genommen IST das dann gar keine Tabelle).

              Wenn man die Liste nun dynamisch mit JavaScript erzeugen will, muss man entweder das 'ul'-Element auch dynamisch erzeugen oder ein 'li'-Dummy in die Liste setzen und dieses mit JavaScript löschen. Schöner wärs doch, man könnte '<ul id="myList"></ul>' im HTML-Quelltext schreiben.

              Sicher wär's schöner und manchmal praktischer, wenn man mit Javascript die DOM-Struktur verändern will. Allerdings sollte die eventuell mögliche nachträgliche dynamische Änderung der Dokumentstruktur IMHO nicht dazu führen, dass unsinnige Elemente im (erstmal) statischen Dokument möglich sind - schließlich gibt's auch Benutzer, die kein Javascript aktiviert haben oder wo es aus anderen Gründen nicht möglich ist, nachträglich die Struktur zu verändern.

              MfG,
              EKKi

              --
              sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
              1. Hallo.

                Eine Liste ohne Listenpunkte halte ich sehr wohl für unsinnig. Und die Jungs vom W3C anscheinend genauso.

                Weshalb denen dann aber ein einzelner Listenpunkt genügt, kann ich nicht nachvollziehen.
                MfG, at

                1. @@at:

                  Weshalb denen dann aber ein einzelner Listenpunkt genügt, kann ich nicht nachvollziehen.

                  Ermöglicht SGML denn eine Angabe „mindestens 2“?

                  Live long and prosper,
                  Gunnar

                  --
                  Flughafen in Tempelhof
                  findet jeder Hempel doof.
                  1. Hallo.

                    Ermöglicht SGML denn eine Angabe „mindestens 2“?

                    Mir war nicht bewusst, dass SGML überhaupt einen Semantik-Validator ermöglichen soll.
                    MfG, at

                    1. @@at:

                      Ermöglicht SGML denn eine Angabe „mindestens 2“?

                      Mir war nicht bewusst, dass SGML überhaupt einen Semantik-Validator ermöglichen soll.

                      Semantik?? Ging es nicht um Struktur? Darum, dass du in der DTD ausdrücken wolltest, dass 'ul' mindestens 2 'li'-Kindelemente haben muss?

                      Live long and prosper,
                      Gunnar

                      --
                      Flughafen in Tempelhof
                      findet jeder Hempel doof.
                      1. Hallo.

                        @@at:

                        Ja, ich weiß. Du antwortest schließlich meinem Beitrag.

                        Semantik?? Ging es nicht um Struktur?

                        Ja, eben.

                        Darum, dass du in der DTD ausdrücken wolltest, dass 'ul' mindestens 2 'li'-Kindelemente haben muss?

                        Nein, ich weiß ja, dass die DTD nicht alles festlegen kann. Deshalb schreibt das W3C ja auch nicht einfach nur die DTD, sondern mehr oder minder menschenlesbare und normal verständliche Spezifikationen. Und in denen vermisse ich eine Aussage über den semantischen Unfug von Listen mit weniger als zwei Einträgen.
                        MfG, at

              2. @@EKKi:

                Eine Liste ohne Listenpunkte halte ich sehr wohl für unsinnig.

                Ich halte einen leeren Container, den man mit server- oder clientseitigem Script füllt, schon für sinnvoll ...

                Und die Jungs vom W3C anscheinend genauso. Sie wäre dann nur ein leerer Container - und dafür ist AFAIK <div> da ...

                ... und dieser sollte kein 'div' sein, wenn’s ein Container für Listenelemente ist.

                Sicher wär's schöner und manchmal praktischer, wenn man mit Javascript die DOM-Struktur verändern will. Allerdings sollte die eventuell mögliche nachträgliche dynamische Änderung der Dokumentstruktur IMHO nicht dazu führen, dass unsinnige Elemente im (erstmal) statischen Dokument möglich sind

                Erweitern wir den Gedanken auf serverseitiges Scripting. Im Normalfall wird die Liste mit Einträgen gefüllt; es kann aber auch passieren, dass aktuell kein Eintrag vorliegt. Warum sollte das Script den dann überflüssigen Container entfernen, wenn ein leeres Element im Quelltext niemandem weh tut?

                Eine DTD ist nicht dazu da, Quelltext nach Sinnhaftigkeit zu beurteilen. Es ist ja auch Divitis erlaubt und ineinander verschachtelte Tabellen. Da könnten auch leere 'ul' u.a. Container erlaubt sein.

                Live long and prosper,
                Gunnar

                --
                Flughafen in Tempelhof
                findet jeder Hempel doof.
                1. Hallo.

                  Erweitern wir den Gedanken auf serverseitiges Scripting.

                  Das ändert aber nichts an dem, was beim Nutzer ankommt.

                  Im Normalfall wird die Liste mit Einträgen gefüllt; es kann aber auch passieren, dass aktuell kein Eintrag vorliegt. Warum sollte das Script den dann überflüssigen Container entfernen, wenn ein leeres Element im Quelltext niemandem weh tut?

                  Weil die Zeiten, in denen etwa leere <p>-Elemente größere Abstände erzeugen sollten, endlich vorüber sind.
                  MfG, at

                  1. @@at:

                    Im Normalfall wird die Liste mit Einträgen gefüllt; es kann aber auch passieren, dass aktuell kein Eintrag vorliegt. Warum sollte das Script den dann überflüssigen Container entfernen, wenn ein leeres Element im Quelltext niemandem weh tut?

                    Weil die Zeiten, in denen etwa leere <p>-Elemente größere Abstände erzeugen sollten, endlich vorüber sind.

                    Hehe, ich will ein leeres 'ul'-Element ja nicht zu Darstellungszwecken missbrauchen.

                    Was ist an dem Markup „hier ist eine Liste; sie ist momentan leer“ denn so verkehrt?

                    Es kann durchaus nützlich sein, ein leeres 'ul' zuzulassen. Nehmen wir an, die Liste <ul id="myList"> hebt Floating auf: ul#myList { clear: both }.

                    Angenommen, nun ist aber gerade kein Eintrag in der Liste. Kein Problem, wenn man <ul id="myList"></ul> schreiben dürfte. Wenn dieses Element aber eventuell auch fehlen kann, kann man es nicht für 'clear' gebrauchen; dann braucht man um 'myList' ein zusätzliches Element 'div'; das macht das Markup nicht besser als ein leeres 'ul'-Element.

                    Live long and prosper,
                    Gunnar

                    --
                    Flughafen in Tempelhof
                    findet jeder Hempel doof.
                    1. Hallo.

                      Hehe, ich will ein leeres 'ul'-Element ja nicht zu Darstellungszwecken missbrauchen.

                      Das würde ich insbesondere dir auch niemals unterstellen, aber das weißt du ja.

                      Was ist an dem Markup „hier ist eine Liste; sie ist momentan leer“ denn so verkehrt?

                      Eine Liste definiert sich über ihre Inhalte, so wie etwa auch eine Tabelle. Ohne Inhalte keine Liste.

                      Es kann durchaus nützlich sein, ein leeres 'ul' zuzulassen.

                      Für den Autoren sicher, aber für den könnten auch ganz andere Dinge nützlich sein, über die du normalerweise auch nur zu Recht den Kopf schüttelst.

                      Wenn dieses Element aber eventuell auch fehlen kann, kann man es nicht für 'clear' gebrauchen;

                      Das tut mir persönlich natürlich leid, aber dass sich zugewiesene Eigenschaften nur auf tatsächlich vorhandene Elemente auswirken, ist doch nicht zu beanstanden. Wenn das CSS so also plötzlich bestimmen soll, wie das Dokument strukturiert zu sein hat, sollte man wenigstens nur semantisch korrekte oder neutrale Elemente hinzufügen.

                      dann braucht man um 'myList' ein zusätzliches Element 'div'; das macht das Markup nicht besser als ein leeres 'ul'-Element.

                      Syntaktisch nicht, aber semantisch.
                      MfG, at

        1. Was würdest du statt &nbsp; schreiben?

        margin/padding ist dafür da um einrückungen oder abstände zu produzieren

  2. @@Patzel:

    Ich weiß, das die 'index-z'-Probleme schon nerven.

    Du bist dir also bewusst, dass schon etliche Probleme damit hatten? Und zum Thema 'z-index' willst du dann nichts im Archiv gefunden haben?

    Aber ich habe wirklich k. Ahnung wie so das ned geht:

    Aus demselben Grund, weshalb es in anderen Fällen auch nicht ging.

    Live long and prosper,
    Gunnar

    --
    Flughafen in Tempelhof
    findet jeder Hempel doof.