Elya: Verständnisproblem Vererbung/Nachkommenselektoren

Hallo,

ich beobachte jetzt schon mehrfach ein Phänomen, das ich mir nicht erklären kann bzw. das ich schlicht nicht verstehe:

ich definiere m.E. völlig unabhängige Bereiche, z.B.

#container
#mainbox

Diese liegen als divs im html-Code und sind nicht verschachtelt (also keine Eltern/Kinder/Enkel voneinander, oder?)

Jetzt definiere ich Untereigenschaften für diese Selektoren:

#container #loginbox ul li a {display:block;
                              [+ andere Eigenschaften]}
#mainbox a:link              {[div. Eigenschaften, keine Angaben zu display]}

Mein bisheriges Verständnis von "cascading" und Selektoren war, daß ich hier für Links völlig unabhängig voneinander Eigenschaften definiert hatte, die sich nicht gegenseitig berühren.

Jetzt passiert aber folgendes: Das display:block; des ersten Bereichs wird auch auf den Link des zweiten Blocks angewendet - sofern ich dort nicht explizit "display:inline;" definiere. Und zwar sowohl im IE als auch im Mozilla FF.

Warum ist das so? Ich vermute wie immer einen Denkfehler bei mir, bin auch nochmal das Selectutorial http://css.maxdesign.com.au/selectutorial/index.htm durchgegangen, aber irgendwie kapier ich's nicht.

Wer kann mir helfen?

Gruß aus Köln-Ehrenfeld, (und: nein, ich bin noch nüchtern ;-))

Elya

--
"Alle mal an die Nase fassen, und zwar an die eigene": http://forum.de.selfhtml.org/archiv/2003/9/57903/#m324482
_____________
Wikipedia: Die freie Enzyklopädie http://de.wikipedia.org
  1. Hallo,

    Es gibt nach Deiner Beschreibung keinen Grund dafür, das beide Links den Wert "block" für die Eigenschaft Display haben.

    Beschränke das HTML-Gerüst und die CSS-Angaben auf das notwendigste und überprüfe das Verhalten erneut.

    Hier tritt besagtes Verhalten nicht auf:

    <html>
    <head>
    <title>Test</title>
    <style type="text/css">
    <!--
    #eins #einsa ul li a {border:1px solid black; display:block; color:blue; }
    #zwei a:link, #zwei a:visited {border:1px solid black; color:red;}
    -->
    </style>
    </head>
    <body>

    <div id="eins">
    <div id="einsa">
    <ul><li><a href="#">eins</a></li></ul>
    </div>
    </div>
    <div id="zwei">
    <a href="#">zwei</a>
    </div>

    </body>
    </html>

    mfg NAG

    --
    signatur
    1. Hallo nag,

      Es gibt nach Deiner Beschreibung keinen Grund dafür, das beide Links den Wert "block" für die Eigenschaft Display haben.

      danke für die Bestätigung, das hat mich das Problem eingrenzen lassen und - siehe da, ich hab meinen derzeitigen Lieblingsfehler entdeckt:

      statt #box a:link, #box a:visited {}
      schreibe ich #box a:link, a:visited {}

      und habe eine schön die ganze Seite umfassende Pseudoklasse definiert, die mir einiges zerhaut...

      Beschränke das HTML-Gerüst und die CSS-Angaben auf das notwendigste und überprüfe das Verhalten erneut.

      hilft wie immer. Danke.

      Gruß aus Köln-Ehrenfeld,

      Elya

      --
      "Alle mal an die Nase fassen, und zwar an die eigene": http://forum.de.selfhtml.org/archiv/2003/9/57903/#m324482
      _____________
      Wikipedia: Die freie Enzyklopädie http://de.wikipedia.org