Matthias: width ändern

Hallo,
ich habe verschieden div bereich per css auf meiner webseite platziert. da diese alle eine feste größe haben, möchte ich diese größe bei untershciedlichen auflösungen ändern!!
das auslesen der bildschirm auflösung klappt ja, aber ich kann den objekten keine neuen wert für width zuweisen!!
kann mir jemand helfen??
vielen dank!
matthias

  1. Hallo.

    ich habe verschieden div bereich per css auf meiner webseite platziert. da diese alle eine feste größe haben, [...]

    Und warum arbeitest du nicht mit "%" ?

    [...]möchte ich diese größe bei untershciedlichen auflösungen ändern!!

    Suchbegriffe:

    - getElementByID
      - getElementByTagName
      - getElementByName

    Gruß, Ashura

    --

    Selfcode: sh:( fo:| ch:? rl:? br:^ n4:& ie:% mo:| va:) de:[ zu:| fl:( ss:{ ls:# js:|
    1. Und warum arbeitest du nicht mit "%" ?

      bei zwei elementen geht es ja so, aber irgendwie muss ich bei einem andern element dann 100% -160 rechnen und das geht wohl mit cass nicht oder??

      Suchbegriffe:

      - getElementByID
        - getElementByTagName
        - getElementByName

      naja habs so schon versucht, aber es klappt bei mir jedenfalls nicht!

      wenn ich jetzt document.getElementByID("top").width= "500"; angebe seh ich keine veränderung!

      matthias

      1. wenn ich jetzt document.getElementByID("top").width= "500"; angebe seh ich keine veränderung!

        Ich merke in letzter Zeit immer häufiger, dass manche Elemente die Einheit (also px) haben wollen um zu funktionieren, und manche eben nicht. Dafür unterstützen manche Elemente auch keine %-Angaben.
        Probiers mal mit 500px, vielleicht klappts ja.

        Und ach ja: schreibe bitte getElementById["top"].width=........ ist sicherer, wenn du's dann mit einem if() versiehst, wegen den runden klammern könnte da was durcheinanderkommen

        1. Ich merke in letzter Zeit immer häufiger, dass manche Elemente die Einheit (also px) haben wollen um zu funktionieren, und manche eben nicht. Dafür unterstützen manche Elemente auch keine %-Angaben.
          Probiers mal mit 500px, vielleicht klappts ja.

          also bei den elementen wo ich width:100% in meiner css datei hab und es auch so will hab ich ja kein problem, ich hab nur ein element, wo eigentlich mein inhalt erscheint und links daneben ist ein menü, und wenn ich 100% angebe, geht der inhaltsbereich rechts noch um die 160px weiter, die das menü verbraucht...

          Und ach ja: schreibe bitte getElementById["top"].width=........ ist sicherer, wenn du's dann mit einem if() versiehst, wegen den runden klammern könnte da was durcheinanderkommen

          damit gehts auch nicht! hab einfach mal ums zu probieren getElementById["top"].width= 500; angegeben und da passiert nichts, also wird es irgendwie daran liegen!!

          1. Hallo.

            damit gehts auch nicht! hab einfach mal ums zu probieren getElementById["top"].width= 500; angegeben und da passiert nichts, also wird es irgendwie daran liegen!!

            Nur um sicher zu gehen: du hast einen DIV o. Ä., welches die ID "top" trägt?

            Gruß, Ashura

            --

            Selfcode: sh:( fo:| ch:? rl:? br:^ n4:& ie:% mo:| va:) de:[ zu:| fl:( ss:{ ls:# js:|
            1. Nur um sicher zu gehen: du hast einen DIV o. Ä., welches die ID "top" trägt?

              ja das hab ich, habs uach mal mit name versucht und das geht auch nicht!

              matthias

              1. Hallo,

                Nur um sicher zu gehen: du hast einen DIV o. Ä., welches die ID "top" trägt?
                ja das hab ich

                wenn Du die zitierte Fehlermeldung bekommst offenbar nicht. Außerdem weist man style-Eigenschaften über das style-Objekt zu objekt.style.width = "..."

                Gruß, Andreas

                --
                SELFFORUM - hier werden Sie geholfen,
                auch in Fragen zu richtiges Deutsch
                1. wenn Du die zitierte Fehlermeldung bekommst offenbar nicht. Außerdem weist man style-Eigenschaften über das style-Objekt zu objekt.style.width = "..."

                  hallo,
                  doch ich habe diese drei buchstaben, das T das O und das P nocheinmal genau kontrolliert..
                  da steht <div class="top" id="top"> und mit style.width hab ich auch schon gemerkt, funktioniert trotzdem nciht :(
                  versuchs gerade über einne andern weg!!
                  die bildschirmgröße auszulesen und dann per php den richtigen wert zu berechnen und auszugeben!
                  viele grüße und vielen dank

                  matthias

                  1. doch ich habe diese drei buchstaben, das T das O und das P nocheinmal genau kontrolliert..

                    es kann aber auch sein, daß es von JS nicht gefunden wird, weil das JS _vor_ dem DIV geladen wird, ergo ist es für JS nicht vorhanden.

                    dein hektisches "probieren" scheint mir wenig zielführend. Sinnvoller wäre es, Du würdest Deinen Quelltext mal auf das _wesentliche_ kürzen und hier posten. Meist klären sich die Fragen schon bei diesen Vorbereitungsarbeiten. Aber jetzt bist Du dran.

                    Gruß, Andreas

                    --
                    SELFFORUM - hier werden Sie geholfen,
                    auch in Fragen zu richtiges Deutsch
        2. Und ach ja: schreibe bitte getElementById["top"].width=........ ist sicherer, wenn du's dann mit einem if() versiehst, wegen den runden klammern könnte da was durcheinanderkommen

          achso, hab gerade noch gesehn dass der folgende fehlermeldung anzeigt:

          document.getelementbyid.top ist null oder kein objekt..
          also das element ist ein div tag, liegts vielleicht daran?

          1. Hab den Fehler gefunden! JS ist case-sensitive!

            du hast das geschrieben:

            document.getElementByID["top"].width="500";
                                  ^ FEHLER!

            es muss so heißen:

            document.getElementById["top"].width="500";

            1. Hallo.

              document.getElementByID["top"].width="500";
                                    ^ FEHLER!

              es muss so heißen:

              document.getElementById["top"].width="500";

              Jaja, "Case Sensitive"... ;)

              Gruß, Ashura

              --

              Selfcode: sh:( fo:| ch:? rl:? br:^ n4:& ie:% mo:| va:) de:[ zu:| fl:( ss:{ ls:# js:|
            2. document.getElementByID["top"].width="500";
                                    ^ FEHLER!
              es muss so heißen:
              document.getElementById["top"].width="500";

              hallo,
              damit funktioniert es leider immernoch nicht..
              es kommt wieder die selbe fehlermeldung!

              matthias

        3. hi,

          Ich merke in letzter Zeit immer häufiger,

          ob des inhalts deiner antwort frage ich mich, was du da wohl merkst, und ob umstehende deine wahrnehmung irgendwie teilen können, oder doch erst das gleiche kraut rauchen müssten.

          dass manche Elemente die Einheit (also px) haben wollen um zu funktionieren, und manche eben nicht. Dafür unterstützen manche Elemente auch keine %-Angaben.

          was tun denn elemente, wenn sie "funktionieren"?

          und nein, die elemente möchten gar nichts haben, sondern höchstens ihre zugewiesenen CSS-eigenschaften - und die natürlich bei längenangaben ungleich null _immer_ eine einheit.

          Und ach ja: schreibe bitte getElementById["top"].width=........

          getElementById() ist eine methode des document-objektes, und bekommt seinen parameter selbstverständlich in _runden_ klammern übergeben.

          allerdings wird unterhalb eines derart referenzierten elementes so gut wie nie eine eigenschaft width liegen, sondern in diesem falle erst mal style, welches unter sich dann wieder width hat.

          ist sicherer, wenn du's dann mit einem if() versiehst, wegen den runden klammern könnte da was durcheinanderkommen

          durcheinander bist hier vor allem du.
          tu allen einen gefallen, und beschäftige dich selbst erst mal ein bisschen eingehender mit den grundlagen von javascript, denn was du hier schreibst, ist nicht mal halbgar.

          gruß,
          wahsaga

          --
          "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      2. Hi,

        Und warum arbeitest du nicht mit "%" ?
        bei zwei elementen geht es ja so, aber irgendwie muss ich bei einem andern element dann 100% -160 rechnen und das geht wohl mit cass nicht oder??

        CSS kann zwar nicht rechnen, aber so etwas ist durchaus über CSS zu realisieren. Du vergißt, daß Block-Elemente ohne width-Angabe den zur Verfügung stehenden Platz einnehmen. Was spricht also gegen ein margin:160px?

        freundliche Grüße
        Ingo

  2. Hallo Matthias,

    Du solltest Dir mal http://de.selfhtml.org/javascript/objekte/style.htm und da u.A. den Teil "Beispiel für DOM-Syntax:" ansehen.

    Auf CSS-Eigenschaften, wie z.B. die Breite, greift man mit

    document.getElementById("divid").style.width = "42px"

    zu. Wenn dieser Befehl kommt, muss das Div mit der Id "divid" natürlich schon existieren. Der Befehl muss also entweder hinter dem Div stehen oder im onload-Eventhandler z.B. des body-Tags aufgerufen werden.
     Der Parameter von getElementById muss in runden Klammern stehen. Die Breite muss eine Einheit haben.

    Gruß, Jürgen