Pille: CSS angaben mit html transitional per getAttribute auslesen

Hallo

Ich habe ein problem:

Ich möchte ein dynamisches Menü erstellen, wie bei windows unter "alle proramme".
Mein problem: Das ganze ist so aufgebaut, dass sich das "sub-menü", welches sich normalerweise ausserhalb des angezeigten Bereichs befindet, wenn man einen Button mit der Maus überfährt, neue Stylesheet-positionangaben per Javascript zugewiesen bekommt und sich so direkt neben den Button setzt, den man mit der Maus überfährt. Allerdings nehme ich die html-transitional-dokummenttyp-deklaration und habe bis jezt noch keine Möglichkeit gesehen, die Stylesheetangaben "left" und "top" unter diesem dokumenttyp zu ändern. Weder document.all.***.style.setAttribute noch document.all.***.style.left zeigt eine Wirkung. Wenn ich die deklaration ganz weglasse, geht es.

Bitte um schnelle Hilfe
Vielen dank
der Pille

  1. Hi,

    Allerdings nehme ich die html-transitional-dokummenttyp-deklaration und habe bis jezt noch keine Möglichkeit gesehen, die Stylesheetangaben "left" und "top" unter diesem dokumenttyp zu ändern. Weder document.all.***.style.setAttribute noch document.all.***.style.left zeigt eine Wirkung.

    Wieso verwendest du document.all?
    Greife "vernünftig" mit DOM-Methoden zu, die alle Browser beherrschen - bspw. getElementById.

    Wenn ich die deklaration ganz weglasse, geht es.

    Das erklärt manches -

    Bitte um schnelle Hilfe

    • ich bitte darum, auf Drängeleien zu verzichten, und zu berücksichtigen, dass Längenangaben in CSS immer eine Einheit benötigen, sofern der Wert ungleich 0 ist.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. Weder document.all.***.style.setAttribute noch document.all.***.style.left zeigt eine Wirkung. Wenn ich die deklaration ganz weglasse, geht es.

    Vermutlich hast du vergessen, den CSS-Eigenschaftswerten eine Einheit mitzugeben

    document.getElementById('elementID').style.left = 15;     // Falsch (funktioniert nur im Quirks-Modus wg. Fehlertoleranz)
    document.getElementById('elementID').style.left = "15px"; // Richtig, funktioniert Browser- und Modusübergreifend

    Mathias

  3. document.getElementById
    document.getElementById(id)
    document.all
    document.all(id)

    keins von denen nimmt er an, mit style.left am ende versteht sich.

    1. Hi,

      document.getElementById
      document.getElementById(id)
      document.all
      document.all(id)

      keins von denen nimmt er an, mit style.left am ende versteht sich.

      Du sprichst in Rätseln. Versuch mal bitte, in nachvollziehbaren Problembeschreibungen zu sprechen.

      MfG ChrisB

      --
      Light travels faster than sound - that's why most people appear bright until you hear them speak.
      1. okay ich versuchs mal :-)

        wie gesagt ich möchte unter transitional stylesheet-angeben, die im head-bereich definiert sind, ändern, und zwar nur für ein element mit EINER bestimmten id, sodass da anstatt

        <a href=".." class="..">

        <a href=".." class=".." style="..">,

        also dem tag weitere stylesheetangaben hinzufügen, die halt im tag direkt stehen und dann von den angeben im Head-bereich vorgezogen werden.

        Nur ich weiss nicht genau wie das nun möglich ist. Ich habe schon die genannten Methoden zum ändern der CSS-werte ausprobiert, aber da tut sich nichts.

        1. Hi,

          wie gesagt ich möchte unter transitional stylesheet-angeben, die im head-bereich definiert sind, ändern, und zwar nur für ein element mit EINER bestimmten id, sodass da anstatt

          <a href=".." class="..">

          <a href=".." class=".." style="..">,

          also dem tag weitere stylesheetangaben hinzufügen, die halt im tag direkt stehen und dann von den angeben im Head-bereich vorgezogen werden.

          Und wo kommt da jetzt JavaScript ins Spiel?

          Nur ich weiss nicht genau wie das nun möglich ist. Ich habe schon die genannten Methoden zum ändern der CSS-werte ausprobiert, aber da tut sich nichts.

          Bei dir tut sich immer noch nichts in Sachen *brauchbarer* Problembeschreibung - lese bitte die Tipps für Fragende, und komm' danach mal langsam mit einer vernünftigen Beschreibung aus dem Quark, bspw. von dem, *was* du probiert hast - denn so lange du uns das nicht zeigst, können wir auch nicht wissen, was du dabei falsch machst.

          MfG ChrisB

          --
          Light travels faster than sound - that's why most people appear bright until you hear them speak.
        2. Ich habe schon die genannten Methoden zum ändern der CSS-werte ausprobiert, aber da tut sich nichts.

          Grundsätzlich:

          <p id="elementId">Hallo</p>

          <script type="text/javascript">
          document.getElementById('elementId').style.color = 'red';
          </script>

          Das wird bei dir sicher auch gehen. Wenn deine Versuche fehlgeschlagen sind, so zeige uns bitte mal den relevanten Quelltext, sonst kommen wir nämlich keinen Schritt weiter.

          Vermutung: Wenn du jetzt top und left ändern willst, muss du natürlich vorher position auf absolute oder relative gesetzt haben.

          Mathias

  4. okay problem mittlerweile behoben. habe die endung 'px' beim ändern vergessen.
    vielen Dank

    1. Hi,

      okay problem mittlerweile behoben. habe die endung 'px' beim ändern vergessen.

      Wenn du aufmerksam(er) lesen würdest, hätten wir uns also den Grossteil der Diskussion sparen können - schliesslich habe ich darauf bereits in meiner ersten Antwort hingewiesen.

      MfG ChrisB

      --
      Light travels faster than sound - that's why most people appear bright until you hear them speak.