tom i2: Scrollbar fix einblenden

Hallo Leute bräuchte einen Tipp, wie kann ich die Scrollbar fix einblenden lassen auch wenn sie nicht benötigt wird.
Habe eine Seite die zentriert aufgebaut wird, wenn jetzt eine Seite von der Länge her keine Scrollbar benötigt, springt die Seite immer nach rechts und zentriert sich neu.
Das ist lästig wenn das immer hin und her geht.
Kann man das fix einstellen?

lg tomi2

  1. Hallo!

    Hallo Leute bräuchte einen Tipp, wie kann ich die Scrollbar fix einblenden lassen auch wenn sie nicht benötigt wird.
    Habe eine Seite die zentriert aufgebaut wird, wenn jetzt eine Seite von der Länge her keine Scrollbar benötigt, springt die Seite immer nach rechts und zentriert sich neu.
    Das ist lästig wenn das immer hin und her geht.
    Kann man das fix einstellen?

    Nein, kann man nicht.
    Praktisch kannst Du dafür sorgen den Inhalt so zu verlängern - mit irgendwelchen transparenten Elementen -, daß immer ein Scrollbar da ist. Das nennt man dann schlechter Stil.

    Beste Grüße
    Viennamade

    1. Hallo Viennamade,

      Habe eine Seite die zentriert aufgebaut wird, wenn jetzt eine Seite von der Länge her keine Scrollbar benötigt, springt die Seite immer nach rechts und zentriert sich neu.
      Das ist lästig wenn das immer hin und her geht.
      Kann man das fix einstellen?

      Nein, kann man nicht.
      Praktisch kannst Du dafür sorgen den Inhalt so zu verlängern - mit irgendwelchen transparenten Elementen -, daß immer ein Scrollbar da ist. Das nennt man dann schlechter Stil.

      Im MSIE gibt es da eine Möglichkeit: Man schreibt das Attribut scroll="yes" ins <body>-Tag. Ist aber bestimmt nicht valide. Bei Opera kann man den vertikalen Scrolbalken erzwingen, indem man die Seite in ein Pseudo-Frameset mit nur einem Frame setzt und bei diesem die Attribut scrolling="yes" cols="*" setzt. Bei meinen Tests haben sich die mozillabasierten Browser dem aber verweigert.

      Alle Browser gleichermaßen kann man zu einem Scrollbalken zwingen, wenn man folgendes CSS setzt, dann ist dieser freilich auch noch um einen Pixel verschiebbar:

      html {
        height:100%;
        margin-bottom:1px;
        scrolling:yes;
      }

      Aber ich gebe dir Recht; schöber Stil ist das alles nicht.

      Gruß Gernot

      1. Hallo

        html {
          height:100%;
          margin-bottom:1px;
        }

        scrolling:yes;

        Das war Quatsch, so etwas gibt es nicht, aber die anderen zwei Angaben wirken.

        Gruß Gernot

      2. hi,

        Im MSIE gibt es da eine Möglichkeit: Man schreibt das Attribut scroll="yes" ins <body>-Tag.

        tut es MS-pseudo-CSS mit overflow-y:scroll; nicht auch?

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. Hallo Wahsaga,

          tut es MS-pseudo-CSS mit overflow-y:scroll; nicht auch?

          Ich weiß nicht, aber wenn es da gar keinen Overflow gibt, habe ich da meine Zweifel, ob dadurch ein Scrollbalken erzwungen wird, das will der Ausgangsfragesteller ja. Habe es aber nicht probiert.

          Gruß Gernot

        2. Hallo

          tut es MS-pseudo-CSS mit overflow-y:scroll; nicht auch?

          Ja habe es ausprobiert, und so ist es dann wohl auch valide:

          <style type="text/css">
          <!--
          html {
           height:100%;
           margin-bottom:1px;
          }
          -->
          </style>
          <!--[if gte IE 6]>
          <style type="text/css">
          html {overflow-y:scroll;}
          </style>
          <![endif]-->

          Ist aber immer noch gefummelt und alles andere als schön unnütze Scrollbalken zu erzwingen.

          Zumindest im IE könnte sich das Hüpfen des zentrierten Elementes vielleicht auch so umgehen lassen

          <img src=irgendein.jpg" ID="Bild"
            STYLE="background-color: #CFCFCF; position: absolute;
                   left:expression(document.body.offsetWidth/2-oDiv.offsetWidth/2)">

          Da sich document.body.offsetWidth auf die Breite inklusive Scrollbalken bezieht, müsste es dann für die Berechnung der mittigen Position egal sein, ob einer erscheint, anders als bei document.body.clientWidth, die ggf. um die Breite des Scrollbalkens vermindert ist.

          vergleiche hierzu:
          http://msdn.microsoft.com/workshop/author/dhtml/overview/recalc.asp?frame=true#Implement

          Gruß Gernot

          1. Hallo nochmal

            <img src=irgendein.jpg" ID="Bild"
              STYLE="background-color: #CFCFCF; position: absolute;
                     left:expression(document.body.offsetWidth/2-oDiv.offsetWidth/2)">

            ________________________________________________________^^^^

            Da muss es natürlich auch "Bild" heißen entsprechend der vergebenen ID
            also:       left:expression(document.body.offsetWidth/2-Bild.offsetWidth/2)">

            Schlampig kopiert aus:

            http://msdn.microsoft.com/workshop/author/dhtml/overview/recalc.asp?frame=true#Implement

            Gruß Gernot

      3. Hallo Gernot!

        Alle Browser gleichermaßen kann man zu einem Scrollbalken zwingen, wenn man folgendes CSS setzt, dann ist dieser freilich auch noch um einen Pixel verschiebbar:

        html {
          height:100%;
          margin-bottom:1px;
        }

        Aber ich gebe dir Recht; schöber Stil ist das alles nicht.

        Naja, jedenfalls besser als mein Vorschlag soviel content zu erzeugen daß die Scrollbars erzwungen werden.
        Interessanter Trick, gut zu wissen.

        Danke,
        Viennamade