Style zuweisen
Maddin
- javascript
0 MudGuard0 Maddin
0 Thomas Meinike0 Maddin0 Thomas Meinike0 Maddin
0 jan0 Korrektur
jan0 Maddin
Hi,
will einer Tabellenzelle einen neuen Style zuweisen, jedoch nicht über die Eigenschaften des sytle - Objekts.
Also nicht:
this.style.backgroundColor = '#eeeee'
Sondern ich brauche unbedingt die Angabe, wie sie in einer Style-Sheet Datei wäre:
Also ungefähr so:
this.style = 'background-color: #e7e7e7'
(funktioniert nicht)
Kennt jemand einen Weg wie man das machen kann?
Danke
Maddin
Hi,
will einer Tabellenzelle einen neuen Style zuweisen, jedoch nicht über die Eigenschaften des sytle - Objekts.
Also nicht:
this.style.backgroundColor = '#eeeee'
das wäre sowieso ungültig. Die Hexzahl muß 3- oder 6-stellig sein, 5-stellig ist nicht zulässig.
Sondern ich brauche unbedingt die Angabe, wie sie in einer Style-Sheet Datei wäre:
this.style = 'background-color: #e7e7e7'
Warum?
Kennt jemand einen Weg wie man das machen kann?
Wenn Dir der Style in der Form 'background-color: #e7e7e7' vorliegt, mußt Du ihn halt entsprechend konvertieren und das Ergebnis dann ggf. in einem geeigneten eval() ausführen.
cu,
Andreas
Hi,
will einer Tabellenzelle einen neuen Style zuweisen, jedoch nicht über die Eigenschaften des sytle - Objekts.
Also nicht:
this.style.backgroundColor = '#eeeee'
das wäre sowieso ungültig. Die Hexzahl muß 3- oder 6-stellig sein, 5-stellig ist nicht zulässig.
Sorry, hab mich nur vertippt.
Sondern ich brauche unbedingt die Angabe, wie sie in einer Style-Sheet Datei wäre:
this.style = 'background-color: #e7e7e7'Warum?
Kennt jemand einen Weg wie man das machen kann?
Wenn Dir der Style in der Form 'background-color: #e7e7e7' vorliegt, mußt Du ihn halt entsprechend konvertieren und das Ergebnis dann ggf. in einem geeigneten eval() ausführen.
Ich hab einen String vorliegen, der genau 'background-color: #e7e7e7'
enthält, aber auch weitere (Style-Sheet) Angaben enthalten kann.
Ich dachte vielleicht gibt es einen einfachen Weg - ohne aufwendige Konvertierung.
Hallo,
Sondern ich brauche unbedingt die Angabe, wie sie in einer Style-Sheet Datei wäre:
Also ungefähr so:
this.style = 'background-color: #e7e7e7'
(funktioniert nicht)
Kennt jemand einen Weg wie man das machen kann?
Entweder -- wie schon geschrieben -- mittels
this.style.backgroundColor='#...'
oder ueber
this.setAttribute('style','eigenschaft1: wert1; eigenschaft2: wert2;')
oder ueber die document.styleSheets-Collection (siehe Archiv).
MfG, Thomas
Hallo,
Sondern ich brauche unbedingt die Angabe, wie sie in einer Style-Sheet Datei wäre:
Also ungefähr so:
this.style = 'background-color: #e7e7e7'
(funktioniert nicht)
Kennt jemand einen Weg wie man das machen kann?
Entweder -- wie schon geschrieben -- mittels
this.style.backgroundColor='#...'
oder ueber
this.setAttribute('style','eigenschaft1: wert1; eigenschaft2: wert2;')
oder ueber die document.styleSheets-Collection (siehe Archiv).
Hallo Thomas,
danke für deinen Beitrag.
Ich habs probiert:
<td onMouseOver="this.setAttribute('style','background-color: #ff0000;')">
funktioniert leider nicht.
Hingegen:
<td onMouseOver="this.setAttribute('bgColor','#ff0000')>
funktioniert.
Nur dummwerweise brauche ich (zwingend) die Angabe wie in der CSS Datei, da 'background-color: #ff0000;' später aus einem String kommen soll.
Hallo,
Ich habs probiert:
<td onMouseOver="this.setAttribute('style','background-color: #ff0000;')">
funktioniert leider nicht.
Hast Du es auch unter Mozilla probiert?
Fuer den IE haette ich noch:
<td onMouseOver="this.style.cssText='background-color: #ff0000;'"
Ansonsten waere auch die Ersetzung von Klassen eine Moeglichkeit:
this.className='neueKlasse'
MfG, Thomas
Hallo,
Ich habs probiert:
<td onMouseOver="this.setAttribute('style','background-color: #ff0000;')">
funktioniert leider nicht.
Hast Du es auch unter Mozilla probiert?
Nein. (Dummerweise verwenden 98,8 % unserer Kunden den IE)
Fuer den IE haette ich noch:
<td onMouseOver="this.style.cssText='background-color: #ff0000;'"
So funktionierts!
Ansonsten waere auch die Ersetzung von Klassen eine Moeglichkeit:
this.className='neueKlasse'
Stimmt.
Danke nochmal Thomas.
Maddin
Hallo,
element.style.cssText = "background-color:#F0F0F0";
bzw.
element.style.cssText += "background-color:#F0F0F0";
Wird aber nicht empfohlen.
Der "richtige" Weg wäre, die Eigenschaft (bgColor) zu ändern.
http://www.mozilla.org/docs/dom/domref/dom_style_ref18.html
Nur dummwerweise brauche ich (zwingend) die Angabe wie in der CSS Datei, da 'background-color: #ff0000;' später aus einem String kommen soll.
Tja, wenn man etwas Aufwand betreiben möchte, dann könnte man es mappen, sprich den String splitten oder einen regulären Ausdruck drüber laufen lassen, und die entspr. "Eigenschaft" zur Angabe ermitteln.
Soll heißen, dass bei einem "background-color" dies erkannt wird, und auf die Eigenschaft "bgColor" zugegriffen wird.
Wie gesagt, mit etwas Aufwand. Du könntest aber dadurch sicherstellen, dass kein Schrott in cssText geschrieben wird.
Dies könnte z.B. über ein assoz. Array implementiert werden.
hth
jan
Korrektur,
Nicht bgColor, sondern backgroundColor lautet die Eigenschaft.
element.style.backgroundColor = xxx;
<
jan
Korrektur,
Nicht bgColor, sondern backgroundColor lautet die Eigenschaft.
element.style.backgroundColor = xxx;
<jan
Danke Jan,
du hast natürlich Recht, das cssText nicht die feine englische Art ist. (Vielleicht mach ich mir wirklich den Aufwand und zerlegs manuell)
Maddin