Thomas Meinike: CSS-Klasse per Javascript definieren

Beitrag lesen

Hallo,

Hat noch jemand eine Idee? Vielleicht habe ich ja auch etwas übersehen. Sowas wie

document.style.classes['orga_togglebox'].fontFamily="monospace";

wäre ja zu schön, um wahr zu sein. ;-)

Ich habe das mal mit document.styleSheets, addRule() [IE] bzw. insertRule() [Mozilla] probiert. Vielleicht hilft dieser Testcase weiter:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test by TM 02/04</title>
<style type="text/css">
<!--

/*
  Dummy-Stylesheet, um document.styleSheets ansprechen zu koennen
  oder alternativ mittels document.createStyleSheet() erzeugen ...
*/

-->
</style>
<script language="JavaScript" type="text/javascript">
<!--
function CreateCSSClass(cname,cstyle)
{
  var styleobj,last;

if(document.styleSheets)styleobj=document.styleSheets;

if(styleobj)
  {
    last=styleobj.length-1;
    // fuer IE:
    if(styleobj.item(last).addRule)styleobj.item(last).addRule("."+cname,cstyle);
    // fuer Mozilla & Co.:
    else if(styleobj.item(last).insertRule)styleobj.item(last).insertRule("."+cname+" {"+cstyle+"}",last);

// neue Klasse dynamisch zuweisen:
    document.getElementById("bla").className="test";
  }
}
//-->
</script>
</head>
<body>
<p id="bla">Klasse test wird per className zugewiesen</p>
<p class="test">Klasse test bereits als Attributwert zugewiesen</p>
<form action="">
<input type="button" value="Neue Klasse" onclick="CreateCSSClass('test','color:#00C;background-color:#FFC;font-family:monospace;text-decoration:none;')">
</form>
</body>
</html>

MfG, Thomas

--
SVG - Learning By Coding
http://svglbc.datenverdrahten.de/