Buddy Cosina: Variable DIV-Breite im Netscape 4.x mit Javascript

Hallo,

Ich möchte auf meiner Seite 3 DIVs einbauen, zwei davon haben eine feste Breite (zusammen 455px). DIV Nr.3 soll eine variable Breite haben, die sich an die verbleibende Fenstergröße des Browsers anpasst. Jetzt habe ich eine Funktion, die beim Laden der Seite ausgeführt wird, geschrieben, welche folgenden Code enthält:

function layerSetup() {
if ( ns6 )document.getElementById('text').style.width = (innerWidth -455);
if ( ns4 )document.layers["text"].width = (innerWidth -455);
if ( ie4 )text.style.width = (document.body.clientWidth -455);
}

Der Code im Body lautet:

<div id="text" style="position: absolute; width: 569px; left: 20px">
...
</div>

Im IE und NS6 geht alles wunderbar. Bloß beim NS4 geht's nicht. Wahrscheinlich stimmt was im Script nicht. Aber ich habe keine Ahnung wie ich im NS4 die DIV-Breite richtig anspreche. Wie geht denn das?

Gruß
Buddy

  1. Tag auch

    Ich möchte auf meiner Seite 3 DIVs einbauen, zwei davon haben eine feste Breite (zusammen 455px). DIV Nr.3 soll eine variable Breite haben, die sich an die verbleibende Fenstergröße des Browsers anpasst.

    Dafür könnte auch "reines" CSS ausreichen.
    Schau mal hier nach: http://www.thenoodleincident.com/tutorials/box_lesson/boxes.html.

    Bzw., falls es unbedingt Javascript sein muß ...

    if ( ns4 )document.layers["text"].width = (innerWidth -455);

    if ( ns4 )document.layers["text"].width = window.innerWidth - 455;
    müßte eigentlich funktionieren.

    Alternativ kannst Du für NC 4.x auch folgendes versuchen:
    <style type="text/javascript">
    ids.text.width = window.innerWidth - 455;
    </style>

    Dann darfst Du allerdings im Body für den Div keine Breite angeben, weil Du damit die Style-Angabe wieder überschreibst.

    Thomas J.
    (ungetestet und mit der heißen Nadel)

    1. Danke, Thomas, leider hat nichts davon funktioniert :-(

      Tag auch

      Ich möchte auf meiner Seite 3 DIVs einbauen, zwei davon haben eine feste Breite (zusammen 455px). DIV Nr.3 soll eine variable Breite haben, die sich an die verbleibende Fenstergröße des Browsers anpasst.

      Dafür könnte auch "reines" CSS ausreichen.
      Schau mal hier nach: http://www.thenoodleincident.com/tutorials/box_lesson/boxes.html.

      Auf diesen Seiten hatte ich schon geschaut, aber sie gehen im NS4 nicht :-( Es steht nur ein netter Text da: "This site will look much better in a browser tht supports current web standards, ..."

      Bzw., falls es unbedingt Javascript sein muß ...

      if ( ns4 )document.layers["text"].width = (innerWidth -455);
         if ( ns4 )document.layers["text"].width = window.innerWidth - 455;
      müßte eigentlich funktionieren.

      Funktioniert leider nicht. NS4 kann auch nur den Befehl innerWidth interpretieren - Zumindest lässt sich ein window.alert mit der entsprechenden Breite ausgeben. Die DIV-Breite lässt sich allerdings bei mir darüber nicht ansprechen.

      Alternativ kannst Du für NC 4.x auch folgendes versuchen:
      <style type="text/javascript">
      ids.text.width = window.innerWidth - 455;
      </style>

      Dann darfst Du allerdings im Body für den Div keine Breite angeben, weil Du damit die Style-Angabe wieder überschreibst.

      Geht leider auch nicht. Warum weiß ich nicht.

      Gruß
      Buddy

      1. Hi,

        mach dir doch nicht unnötig viel arbeit, N4.x ist ein sehr überholter Browser für den sich solche Späße gar nicht mehr lohnen.
        Schau einfach das die Seite in N4.x einigermaßen Navigierbar bleibt.
        Wenn Sie schlecht aussieht, und unübersichtlich wird, ist es wohl das Problem der Nutzer die N4.x noch verwenden.

        Gruß

        ueps

        1. Hi,

          mach dir doch nicht unnötig viel arbeit, N4.x ist ein sehr überholter Browser für den sich solche Späße gar nicht mehr lohnen.
          Schau einfach das die Seite in N4.x einigermaßen Navigierbar bleibt.
          Wenn Sie schlecht aussieht, und unübersichtlich wird, ist es wohl das Problem der Nutzer die N4.x noch verwenden.

          Gruß

          ueps

          Hi,

          ich hatte trotzdem die Hoffnung, dass einer eine Idee hat. Aber wahrscheinlich hast du recht, dass sich der Mehraufwand einfach nicht mehr lohnt.

          Gruß
          Buddy

        2. Hi, ueps

          Wenn Sie schlecht aussieht, und unübersichtlich wird, ist es wohl das Problem der Nutzer die N4.x noch verwenden.

          Dann ist es aber trotzdem noch _dein_ Problem, weil es ja _deine_ Besucher sind ;)

          LG Orlando

          --
          SELF-TREFFEN 2002
          http://www.rtbg.de/selftreffen/
          http://www.megpalffy.org/temp/penneninhh.html

          1. Hi,

            Dann ist es aber trotzdem noch _dein_ Problem, weil es ja _deine_ Besucher sind ;)

            Ich würde nicht dagen das es dann mein Problem ist:

            Zum einen muss überlegt werden ob der Mehraufwand für N4.x sich von den Kosten her überhaupt lohnt im Vergleich zum Nutzen die, die noch wenigen N4.x Besucher mit sich bringen. Da ist es mir aus Unternehmerischer Sicht völlig egal ob ich da eine Nutzerschicht aussperre wenn sich das nicht rechnet.

            Zum anderen, hab ich ja auch nicht gesagt das N4.x User generell ausgesperrt werden sollen. Die Seite soll navigierbar bleiben, Komfort beim Surfen haben halt nur die, die einen neueren Browser benutzen. Lieber in N4.x schlechte Optik und sonst Prima, als in allen Browsern Durschnittsdesign.

            Gruß

            ueps

            1. Hi,

              Zum einen muss überlegt werden ob der Mehraufwand für N4.x sich von den Kosten her überhaupt lohnt im Vergleich zum Nutzen die, die noch wenigen N4.x Besucher mit sich bringen.

              welchen Mehraufwand meinst du? Ich kann dieses Argument nie so recht nachvollziehen. Das liegt vielleicht daran, dass ich meine Basteleien immer in HTML und CSS aufteile. N4 die Stylesheets vorzuenthalten dauert genau zwei Sekunden - damit ist das Problem beseitigt. Javascript setze ich kaum ein, also sollte es hier auch keine Probleme geben. Schließlich muss die Seite auch ohne JS funktionieren.

              Da ist es mir aus Unternehmerischer Sicht völlig egal ob ich da eine Nutzerschicht aussperre wenn sich das nicht rechnet.

              Die Kosten sind IMHO gering, dürften sich also schnell rechnen.

              Zum anderen, hab ich ja auch nicht gesagt das N4.x User generell ausgesperrt werden sollen. Die Seite soll navigierbar bleiben, Komfort beim Surfen haben halt nur die, die einen neueren Browser benutzen. Lieber in N4.x schlechte Optik und sonst Prima, als in allen Browsern Durschnittsdesign.

              Das sehe ich genauso.

              LG Orlando

              --
              SELF-TREFFEN 2002
              http://www.rtbg.de/selftreffen/
              http://www.megpalffy.org/temp/penneninhh.html

      2. Ich nochmal

        Auf diesen Seiten hatte ich schon geschaut, aber sie gehen im NS4 nicht :-( Es steht nur ein netter Text da: "This site will look much better in a browser tht supports current web standards, ..."

        Siehe Antwort von uepselon

        if ( ns4 )document.layers["text"].width = window.innerWidth - 455;
        müßte eigentlich funktionieren.

        Funktioniert leider nicht. NS4 kann auch nur den Befehl innerWidth interpretieren

        Dann versuche doch einfach mal window.innerWidth zunächst in eine Variable zu speichern.
        winw = window.innerWidth und dann
        document.layers["text"].width = winw - 455;

        <style type="text/javascript">
        ids.text.width = window.innerWidth - 455;
        </style>
        Geht leider auch nicht. Warum weiß ich nicht.

        Ich hab's eben getestet. Es geht.

        <style type="text/css">
        <!--
        #text {
         position:absolute;
         .
         .
         .
         usw.
        }
        -->

        <style type="text/javascript">
        ids.text.width = window.innerWidth - 455;
        ids.text.left =  "455";
        </style>

        Und dann im body <div id="text"> ... </div> ergibt einen Layer, der links bei 455px beginnt und sich bis (fast) zum rechten Fensterrand erstreckt.

        Thomas J.