Conny: Ebenen - unschöne Darstellung bei verkleinertem Browserfenster

Einen schönen Tag wünsche ich euch. *indierundewink*

Mein Ziel: ein schwarzer Balken, der vom linken bis zum rechten Rand verläuft und zwar ohne Lücke zu den Rändern. Darüber soll ein Menü mit relativ vielen Auswahlpunkten liegen. Ich möchte dabei mit Ebenen arbeiten und es soll mit den neueren Versionen von IE und Netscape vernünftig aussehen.

Prinzipiell habe ich das schon erreicht, allerdings traten dann bei verkleinertem Browserfenster Probleme auf, und bei den Versuchen, es vielleicht noch anders zu lösen, stellten sich neue Probleme. Mir fallen nun einfach keine Stichpunkte mehr ein, unter denen ich noch einmal nachlesen könnte. Vielleicht könnt ihr mir dabei helfen. Ich versuche mal, meine bisherigen Schritte aufzuzeigen, vielleicht stecken da ja auch noch eine Reihe an Denkfehlern drin. Gar so fit bin ich im Umgang mit CSS nämlich (leider) noch nicht.

Erst einmal habe ich den schwarzen Balken und den Text auf getrennte Ebenen gelegt. Den Balken stellte ich mit width auf 100% ein. Der Netscape zog ihn korrekt von Rand bis Rand, der IE ließ rechts einen Abstand. Also legte ich einfach noch einen Balken an, der vom rechten Bildschrimrand (right:0px) starten sollte, so dass auch der IE das Richtige anzeigte. War das zu umständlich?

Was mich nun total verwunderte war, dass sich die 100% Breite auf die ursprüngliche Browsergröße einstellen, so dass der schwarze Balken bei notwendigem Quer-Scrollen nicht mitwächst. Ich hätte erwartet, dass sich die 100% jeweils an die benötigte Fläche anpassen. Dieser Effekt ist ziemlich ärgerlich. Gibt es da irgendeine Lösung oder habe ich halt Pech gehabt?

Meine nächste Überlegung war dann, dass ich halt nur die Menüebene nehme und diese schwarz hinterlege. Das funktioniert mit dem IE, aber nicht mit Netscape. Netscape zeigt die Schrift zwar bis zum Ende an (Ich habe white-space:nowrap angegeben, damit die Menüpunkte nicht umgebrochen werden.), hinterlegt jedoch nur bis zum ursprünglichen Rand.

Dazu kommt:

1. Der Text wird nicht mittig im Balken positioniert (Wieso nicht?) und padding-top wird wiederum von beiden Browsern unterschiedlich interpretiert.

2. Ich möchte, dass der Text des Menüs nicht direkt am linken Rand beginnt, sondern eingerückt wird. Mit einer Angabe für padding-left erreiche ich das zwar, gleichzeitig wird aber auch der gesamte Balken in die Breite gezogen, was ich nicht verstehe. Bei der Angabe padding soll doch der Inhalt zur Elementgrenze hin definiert werden, so dass ich die Elementgrenze als starre Größe erwarten würde. Das ärgerliche daran ist, dass ich dann immer einen Scrollbaen habe, selbst wenn er gar nicht nötig ist.

Über Rückmeldungen würde ich mich auf jeden Fall sehr freuen. Vielleicht habe ich ja auch einfach nur in die völlig falsche Richtung gedacht?

Grüße,
Conny

  1. Hallo Conny,

    schau mal unter http://css.maxdesign.com.au/listamatic/. Da gibt's viele Beispiele zur Menügestaltung.

    Für dein konkretes Problem wäre ein Beispiel zum Anschauen sinnvoll.

    Viele Grüße
    Frank

    1. Hallo Frank,

      schau mal unter http://css.maxdesign.com.au/listamatic/. Da gibt's viele Beispiele zur Menügestaltung.

      Danke, die Seite ist gut - ich habe schon gleich wieder ein paar schöne Sachen gelernt. :-) Mein Problem ist damit leider noch nicht gelöst.

      Für dein konkretes Problem wäre ein Beispiel zum Anschauen sinnvoll.

      Schau dir auf deiner genannten Seite mal das Beispiel "Webfroot Horizontal NavBar" unter "Horizontal lists" an. So ungefähr soll mein Menü aussehen. Wenn du das Brwoserfenster jetzt aber sehr klein machst, so dass du horizontal scrollen musst, siehst du, dass der Balken nicht mehr bis zum Ende der Seite gezogen wird. Das möchte ich aber gerne haben. Gibt es dafür eine Lösung oder habe ich halt Pech gehabt?

      Grüße,
      Conny

      1. Hi,

        Schau dir auf deiner genannten Seite mal das Beispiel "Webfroot Horizontal NavBar" unter "Horizontal lists" an. So ungefähr soll mein Menü aussehen. Wenn du das Brwoserfenster jetzt aber sehr klein machst, so dass du horizontal scrollen musst, siehst du, dass der Balken nicht mehr bis zum Ende der Seite gezogen wird. Das möchte ich aber gerne haben. Gibt es dafür eine Lösung oder habe ich halt Pech gehabt?

        warum versuchst Du nicht einfach, das hier eingesetzte CSS wenigstens ansatzweise zu entschlüsseln?
        Was meinst Du, bedeutet "padding-left: 180px;" in diesem Menü?

        freundliche Grüße
        Ingo

        1. Hi Ingo,

          warum versuchst Du nicht einfach, das hier eingesetzte CSS wenigstens ansatzweise zu entschlüsseln?
          Was meinst Du, bedeutet "padding-left: 180px;" in diesem Menü?

          Und warum versuchst du nicht, Fragen bis zu Ende zu lesen?

          Nochmal, extra für dich: Nimm das Beispiel, das ich nannte (http://css.maxdesign.com.au/listamatic/horizontal14.htm), mach das Browserfenster so klein, dass du querscrollen musst und dann scrolle auch bis nach rechts. Du wirst sehen, dass der Balken nun nicht mehr bis an den rechten Rand reicht, sondern "wegwandert". Soll er aber nicht.

          Conny

          1. Hi,

            Nochmal, extra für dich: Nimm das Beispiel, das ich nannte (http://css.maxdesign.com.au/listamatic/horizontal14.htm), mach das Browserfenster so klein, dass du querscrollen musst und dann scrolle auch bis nach rechts. Du wirst sehen, dass der Balken nun nicht mehr bis an den rechten Rand reicht, sondern "wegwandert". Soll er aber nicht.

            tut er auch nicht! Jedenfalls nicht, wenn Du die Seite lokal bei Dir speicherst - und zwar ohne das importierte CSS von maxdesign. Das Problem tritt nur auf (und auch nur im IE), wenn auf der Seite Elemente mit einer Weitenangabe sind - und zwar außerhalb der Menüliste. Wenn Du also z.B. die Seite mit einer festen Beite definieren willst, geht das auch mit diesem Menü und auch im IE, wenn das DIV mit der Begrenzung auch das Menü einschließt.

            freundliche Grüße
            Ingo

            1. Hi Ingo,

              tut er auch nicht! Jedenfalls nicht, wenn Du die Seite lokal bei Dir speicherst - und zwar ohne das importierte CSS von maxdesign. Das Problem tritt nur auf (und auch nur im IE), wenn auf der Seite Elemente mit einer Weitenangabe sind - und zwar außerhalb der Menüliste. Wenn Du also z.B. die Seite mit einer festen Beite definieren willst, geht das auch mit diesem Menü und auch im IE, wenn das DIV mit der Begrenzung auch das Menü einschließt.

              Also entweder reden wir völlig aneinander vorbei oder ich steh' absolut auf'm Schlauch. Sieh dir doch bitte mal folgendes an:

              <html>
              <head>
              <title>Unbenannt</title>
              <style type="text/css">
              <!--

              #menue
              {
              position:absolute;
              top:20px;
              left:0px;
              right:0px;
              background-color:#cc0000;
              color:#000000;
              white-space:nowrap;
              font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
              }

              li {  display: inline; }

              //-->
              </style>

              </head>
              <body>

              <div>

              <ul id="menue">
              <li>Thema 1</li>
              <li>Thema 2</li>
              <li>Thema 3</li>
              <li>Thema 4</li>
              <li>Thema 5</li>
              <li>Thema 6</li>
              <li>Thema 7</li>
              <li>Thema 8</li>
              <li>Thema 9</li>
              <li>Thema 10</li>
              <li>Thema 11</li>
              <li>Thema 12</li>
              <li>Thema 13</li>
              <li>Thema 14</li>
              <li>Thema 15</li>
              <li>Thema 16</li>
              </ul>

              </div>

              </body>
              </html>

              Netscape hinterlegt farbig von Rand zu Rand der ursprünglichen Browsergröße. Wenn allerdings quer gescrollt werden muss, wird der Text, der darüber hinaus geht, zwar angezeigt, aber eben ohne Hintergrund.

              Der IE lässt zum linken Rand eine Lücke (trotz left:0px, er interpretiert wohl nur das right:0px), hinterlegt aber wenigstens alles farbig, auch beim Verkleinern des Brwoserfensters.

              Wenn man id="menue" nicht dem <ul> zuweist, sondern dem <div> (Was meines Wissens aber auch gar nicht "erlaubt" ist, oder?), reagiert Netscape ebenso falsch wie vorher, der IE macht es richtig. (Zieht dabei allerdings den Balken höher - aber das mag andere Zusammenhänge haben, da habe ich jetzt nicht weiter nachgeforscht.)

              Wo liegt der Fehler?

              Grüße,
              Conny

              1. Hi,

                ul#menue
                {
                margin:20px 0 0; padding:0;
                background-color:#cc0000;
                color:#000000;
                width:81em;
                font: normal 1em Verdana, Geneva, Arial, Helvetica, sans-serif;
                list-style:none;
                }
                li {  display: inline; }

                sollte in diesem Beispiel die gewünschte Anzeige bringen.
                Ich fürchte, daß Du um eine Weitenangabe nicht herumkommst. Wenn Du sie in EM angibst und den Schriftgrad auch, dann sollte es aber auch bei Schriftgradänderungen noch passen.

                freundliche Grüße
                Ingo