CSS angaben mit html transitional per getAttribute auslesen
Pille
- javascript
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
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
MfG ChrisB
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
document.getElementById
document.getElementById(id)
document.all
document.all(id)
keins von denen nimmt er an, mit style.left am ende versteht sich.
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
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.
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
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
okay problem mittlerweile behoben. habe die endung 'px' beim ändern vergessen.
vielen Dank
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