Hallo Forumsgemeinde,
bei meinen DHTML-experimenten bin ich auf ein seltsames phänomen gestoßen: Wenn ich stilangaben (CSS) über das <STYLE> tag vornehme, und die zugewiesenen attribute später z.b. per alert() wieder ausgeben möchte, wird beim IE4 *nichts* angezeigt, obwohl die zuweisung funktionierte (der stil also am bildschirm sichtbar wird). Inline (also: style="") funktioniert dagegen reibungslos). Es machte bei mir übrigens keinen unterschied ob ich im <STYLE> tag den stil per # anspreche (also über die ID) oder per . (also über die CLASS angabe). Hierzu folgender source:
<HTML>
<HEAD>
<TITLE>DHTML TEST</TITLE>
</HEAD>
<BODY onLoad="test();">
<STYLE type="text/css"><!--
#xparent {position:absolute;visibility:visible;left:1px;top:1px;width:150px;height:20px;clip:rect(0,150,20,0);background-color:teal;layer-background-color:teal;padding:1;}
#xchild {position:absolute;visibility:visible;left:1px;top:1px;width:2400px;height:20px;background-color:teal;layer-background-color:teal;padding:1;}
//--></STYLE>
<span id="xparent">
<span id="xchild">
Hallo Welt!
</span>
</span>
<!-- so funktioniert dann die ausgabe per alert() reibungslos:
<span id="xparent" style="{position:absolute;visibility:visible;left:1px;top:1px;width:150px;height:20px;clip:rect(0,150,20,0);background-color:teal;layer-background-color:teal;padding:1;">
<span id="xchild" style="{position:absolute;visibility:visible;left:1px;top:1px;width:150px;height:20px;clip:rect(0,150,20,0);background-color:teal;layer-background-color:teal;padding:1;">
Hallo Welt!
</span>
</span>
-->
<SCRIPT LANGUAGE="JavaScript"><!--
var pleft= ptop= 0;
NN= (document.layers) ? 1 : 0; IE= (document.all) ? 1 : 0;
function test()
{
if (IE) alert(xparent.style.left);
if (NN) alert(document.xparent.left);
}
//--></SCRIPT>
</body>
</html>
Jetzt könnte man natürlich wieder alles doppelt zuweisen, damit beide browser 'zufrieden' sind (also per <STYLE> *und* inline), aber das kann's doch nicht sein! Oder? Kann ja auch sein, daß ich etwas falsch mache oder einfach etwas übersehen habe?
Hat jemand da draußen schon einmal etwas ähnliches festgestellt?
bis denn dann
/*,*/
Wowbagger