styles mit java löschen
Oleee
- javascript
0 Cybaer
hallo, ich habe kaum schimmer von JS und bitte um ein Script.
ich möchte, sofern javascript aktiviert ist einige(2) style definitionen löschen.
ich würde die löschbaren klassen einfach in den header schreiben, hätte aber auch nichts dagegen die datei extern zu verlinken und den link über js zu löschen.
geht das? wie?
danke im vorraus :)
lg
ole
Hi,
ich würde die löschbaren klassen einfach in den header schreiben, hätte aber auch nichts dagegen die datei extern zu verlinken und den link über js zu löschen.
geht das? wie?
Coding: CSS-Regeln (& Stylesheets) auslesen & ändern. Z.B.:
cssRule(".myClass","","");
bzw. um einen Bug im Konqueror(?)/Safari zu umgehen:
cssRule(".myClass","","opacity:1");
(IIRC %-))
Gruß, Cybaer
Hello out there!
Damit schießt du – wie in den meisten Fällen – wieder mit deiner Kanone auf Spatzen.
Es geht weitaus einfacher:
Mit JavaScript verpasst man dem 'body' die Klassenzugehörigkeit "JavaScript_aktiv":
window.onload = function ()
{
body.className = "JavaScript_aktiv";
};
(oder quick and dirty im HTML:
<body onload="[code lang=javascript]this.className = 'JavaScript_aktiv';
">[/code])
Die bei aktivem JavaScript anderen Regeln notiert man einfach mit im Stylesheet, der Nachfahrenselektor ist ein Freund:
foo
{
bar: baz;
}
body.JavaScript_aktiv foo
{
bar: quz;
}
Durch die höhere Spezifität des Selektors 'body.JavaScript_aktiv foo' hat die Eigenschaft 'bar' bei aktiviertem JavaScript den Wert "quz".
Ohne JavaScript hat 'body' nicht die Klasse "JavaScript_aktiv"; der Selektor passt also nicht, die Eigenschaft 'bar' hat den Wert "baz".
See ya up the road,
Gunnar
body.className = "JavaScript_aktiv";
Berichtigung:
document.body.className = "JavaScript_aktiv";
Ingunnarid
ah, das is ja super einfach, da hätte ich auch drauf kommen müssen, Danke :)
Hi,
Damit schießt du – wie in den meisten Fällen – wieder mit deiner Kanone auf Spatzen.
Ja, ich weiß.
Kürzer ist es, direkt die Methode aufzurufen, mit der man eine Regel löschen kann ...
Es geht weitaus einfacher:
... aber das ist nicht einfacher.
Aber es mag auch sein, daß der Fragesteller seinen Wunsch nicht treffend beschrieben hat, oder ich ihn schlicht nicht verstanden habe.
Denn "löschen" ist für mich was anderes als "ignorieren".
Aber in einem Forum findet man ja durchaus unterschiedliche Verständnisarten und Meinungen, nicht wahr Gunnar. :)
Gruß, Cybaer
Hello out there!
Kürzer ist es, direkt die Methode aufzurufen, mit der man eine Regel löschen kann ...
Nun mal nicht schummeln. Dass du die Übertragung deiner Bibliothek (zumindest die der benutzten Methode(n)) zur Länge dazurechnen musst, sollte selbstverständlich sein.
... aber das ist nicht einfacher.
Der OP sagte anderes. [olee]
Denn "löschen" ist für mich was anderes als "ignorieren".
Löschen einer Regel aus dem Autorenstylesheet bedeutet, dass die entsprechende Regel aus dem Browserstylesheet angewandt wird (sofern keine passenden Regeln in höherwertigen Stylesheets vorhanden) bzw. der Defaultwert der Eigenschaft(en) gilt.
Denselben Effekt erzielt man, indem man mit spezifischeren Regeln (bei aktivem JavaScript) die Defaultwerte (oder andere gewünschte) explizit setzt.
Aber in einem Forum findet man ja durchaus unterschiedliche Verständnisarten und Meinungen, nicht wahr Gunnar. :)
Und ich bin immer offen für andere Meinungen. Sie sollten aber gut begründet sein. Wenn sie in Nullkommanichts zu widerlegen sind, dann tu ich genau das.
See ya up the road,
Gunnar
Hi,
Kürzer ist es, direkt die Methode aufzurufen, mit der man eine Regel löschen kann ...
Nun mal nicht schummeln. Dass du die Übertragung deiner Bibliothek (zumindest die der benutzten Methode(n)) zur Länge dazurechnen musst, sollte selbstverständlich sein.
:) Wieso? Die ist doch ohnehin eingebunden! O:-)
Im Ernst: Ich meinte wirklich nur die Methoden zur Entfernung der Regel. Und das ist halt sehr kurz. Aber ...
... das ist nicht einfacher.
denn das Problem ist halt, die gewünschte Regel zu finden. Dafür die Funktion.
Der OP sagte anderes. [olee]
Jo, *hinterher* kann man leicht schlauer sein.
Und ich habe ihn so gut verstanden, wie ich konnte - sofern man das überhaupt kann, wenn schon nach "Java" gefragt wird. (hetz ;-))
Löschen einer Regel aus dem Autorenstylesheet bedeutet, dass die entsprechende Regel aus dem Browserstylesheet angewandt wird (sofern keine passenden Regeln in höherwertigen Stylesheets vorhanden) bzw. der Defaultwert der Eigenschaft(en) gilt.
Wie gesagt: *Ich* verstehe halt unter "Regel löschen" was anderes - also Richtung deleteRule()/removeRule(). Genauso wie ich unter "Element löschen" auch an removeChild() denke, und nicht an style.display="none". =:-o
Aber egal ...
Und ich bin immer offen für andere Meinungen. Sie sollten aber gut begründet sein. Wenn sie in Nullkommanichts zu widerlegen sind, dann tu ich genau das.
Nicht wahr?! :)
Gruß, Cybaer