Toon posts:

[js] css schrijven?

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik probeer een manier te vinden om css te schrijven met javascript.

ik wil bijvoorbeeld een a:hover of div:before kunnen maken met javascript.
mijn poging ziet er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
var oStyle = document.createElement('style');
oStyle.type = 'text/css'
oStyle.nodeValue = '\
    html, body {\n\
        background:#a00;\n\
    }\n\
    a:hover {\n\
        background:#555;\n\
    }\
';
document.getElementsByTagName('head')[0].appendChild(oStyle);
is er een manier om dit werkend te maken? en is dat überhaupt wel mogelijk...

  • AxiMaxi
  • Registratie: December 2000
  • Laatst online: 28-04 16:00
dat nodeValue klopt niet, want volgens de DOM inspector, staat er niks in je STYLE element.

[Hier had mijn handtekening kunnen staan]


  • AxiMaxi
  • Registratie: December 2000
  • Laatst online: 28-04 16:00
Ah, gevonden hoe het moet:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
var oStyle = document.createElement('style');
oStyle.type = 'text/css'
var oInnerStyle = document.createTextNode('\
    html, body {\n\
        background:#a00;\n\
    }\n\
    a:hover {\n\
        background:#555;\n\
    }\
');
document.getElementsByTagName('head')[0].appendChild(oStyle);
document.getElementsByTagName('style')[0].appendChild(oInnerStyle);

[ Voor 10% gewijzigd door AxiMaxi op 17-06-2005 11:29 . Reden: ff netjes gemaakt ]

[Hier had mijn handtekening kunnen staan]


Verwijderd

Topicstarter
netjes opgelost, bedankt

maar helaas is er één nadeel,
het werkt niet in IE :'(
quote: IE-error
onverwachte aanroep van methode of toegang tot eigenschap
daar gaat het fout bij de laatste regel.

heb het nog een beetje aangepast, maar dat verandert natuurlijk niets aan de error
code:
1
2
3
4
5
6
7
8
9
10
11
12
    var oStyle = document.createElement('style');
    oStyle.type = 'text/css'
    var oInnerStyle = document.createTextNode('\
          html, body {\n\
              background:#a00;\n\
          }\n\
          a:hover {\n\
              background:#555;\n\
          }\
    ');
    oStyle.appendChild(oInnerStyle);
    document.getElementsByTagName('head')[0].appendChild(oStyle);

Verwijderd

Nu schrijf ik niet dagelijks css, via javascript :P Maar het zou toch ook mogelijk moeten zijn om de classes specifieke te creeren als object? :)

Verwijderd

Topicstarter
ow wacht, bijna vergeten.

eigenlijk had ik dit nodig voor de :after te schrijven, en dat kan nu dus.
:after werkt tog niet in IE.

tnx dus _/-\o_

als er nog een oplossing gevonden wordt wil ik het natuurlijk wel horen,
miss heb ik er ooit nog iets aan :P
Pagina: 1