MichelM: Das ist der Hammer schlechthin.

Beitrag lesen

Hallo,

eigentlich hatte ich was Anderes vor. Aber beim Testen mit dem IE entdeckte ich eine gute Möglichkeit CSS zu testen:
Einfach den Code mit Copy&Paste übernehmen - ich habs nicht hochgeladen.

Die Möglichkeit, nur noch eine CSS zu erstellen und zu parsen bietet sich hier an.
Da CSS nur sehr wenige Syntaxregeln enthält und diese leicht zu parsen sind, bietet sich CSS als Template an.
Für Fälle wo XML/XSLT die Kanone auf Spatzen ist oder wo DHTML-Funktionen zur umständliche Fingerhakelei werden
(im jeden Tag onmouseover oder umständliche Micosoft-Syntax für das Abfangen von events)

Bevor ich also so einen Parser progge möchte ich mal erst Eure Meinung dazu hören.

Hier das Testscript mit einm Hover-Effekt für MSIE ab 4.0 und Opera 4, der später aus dem Parser erzeugt werden kann (Netscape 6 macht das locker mit :focus und :hover):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta name="generator" content="HTML Tidy, see www.w3.org">

<title>Newsletter Formular WAI AAA</title>
<script  language="JScript" type="text/jscript"><!--
var myLayer=new Object();
function ieShowYellow(){
myLayer=window.event.toElement;
if(myLayer.tagName=="LABEL"||myLayer.tagName=="INPUT"||myLayer.tagName=="TEXTAREA"){
myLayer.style.backgroundColor="threedhighlight";}
else{

myLayer.cancelBubble=true;

}

myLayer=window.event.fromElement;
if(myLayer.tagName=="LABEL"){
myLayer.style.backgroundColor="Transparent";}
else if( myLayer.tagName=="INPUT"||myLayer.tagName=="TEXTAREA"){
myLayer.style.backgroundColor="infobackground";
}

else{myLayer.cancelBubble=true; }

}

function checkCSS(){
aussen=window.open("","","width=400;height=600,scrollbars=1");
if(document.all){
for(i=0;i<=document.styleSheets.length-1;i++){
alleRules=document.styleSheets[i].cssText.split("}"); }

}
for(i=1;i<=alleRules.length-1;i++){

if(alleRules[i].indexOf("hover")!=-1||alleRules[i].indexOf("unknown")!=-1||alleRules[i].indexOf("LEGEND")!=-1){aussen.document.write(alleRules[i]+";}<BR>");}
 }
}
// -->
</script>

<style type="text/css">
 :focus{background-color:threedhighlight;}
 body.c42 {font-family:tahoma,verdana;font-size:11px;background-color:window;scrollbar-base-color:threedhighlight;}
 input:hover,input:focus, td.cl1:hover,td.cl1:focus{background-color:threedhighlight;}
:hover {background-color:threedhighlight;}
 fieldset.c41 {width:360px;background-color:infobackground}

table.c40 {font-size:12px;font-weight:bold;}

button.c39 {width:100%;height:20px;cursor:pointer;}
button.c39:focus{border-color:maroon;}
button.c39:hover{background-color:maroon;color:gold;}

span.c38 {background-color:wheat}

input.c37 {width:100%;height:35px;overflow:auto;font-weight:bolder;}

td.c36 {text-align:center}

small.c35 {color:brown}

input.c34 {width:100%;height:35px;overflow:auto;font-weight:bolder;}

label.c33 {cursor:pointer;font-size:12px;background-color:transparent;}

span.c32 {border-bottom:ridge 1px gray;color:#336699;font-weight:bolder;font-size:14px;}

span.c31 {position:relative;top:-8px;left:10px;font-family:tahoma,verdana,arial,helvetica,sans-serif;font-size:16px;color:#336699;font-weight:bolder;}

span.c30 {font-size:26px;font-family:Tahoma,Verdana,helvetica,sans-serif;font-weight:bolder;color:gray}

legend.c29 {background-color:activeborder;border:ridge 2px scrollbar;width:336px;text-align:center;color:activecolor;font-size:14px;font-weight:bold}

</style>

</head>

<body class="c42"  onload="checkCSS()">

<fieldset class="c41" onfocus="(navigator.appName.indexOf('Internet Explorer')!=-1)?ieShowYellow():void(0);" onmouseover="(navigator.appName.indexOf('Internet Explorer')!=-1)?ieShowYellow():void(0);"><legend class="c29">Quick&Easy

Offline-Informationen</legend>

<form action="" method="post"><span class="c30">JA</span>,<br>

<span class="c31">ich will Artikel und Neuheiten bestellen</span>

<table summary="text" class="c40">

<tbody>

<tr>

<td class="cl1"><label for="Home.Email" class="c33" tabindex="1" accesskey=

"e"><span class="c32">e</span>Mail<br>

Adresse</label> </td>

<td class="c36 "><input type="textarea" id="Home.Email" name="HomeEmail" class="c34" onfocus="this.style.borderColor='brown'"

onblur="this.style.borderColor='transparent';" style="-moz-border-radius:10px;"><br>

<small class="c35">[eMail-Adresse ist erforderlich]</small></td>

</tr>

<tr>

<td class="cl1"><label for="pdf" class="c33" tabindex="2" accesskey="P">als

<span class="c32">P</span>DF-File</label> </td>

<td class="cl1"><input type="checkbox" id="pdf" name="pdf" onfocus=

"this.style.borderColor='brown'" onblur=

"this.style.borderColor='transparent';"><label for="pdf" class="c33" tabindex="2" accesskey="P">PDF-File (Acrobat

Reader)</label></td>

</tr>

<tr>

<td class="cl1"><label for="zip" class="c33" tabindex="3" accesskey="Z">als

<span class="c32">Z</span>IP-File</label> </td>

<td class="cl1"><input type="checkbox" id="zip" name="zip" onfocus=

"this.style.borderColor='brown'" onblur=

"this.style.borderColor='transparent';"><label for="zip" class="c33" tabindex="3" accesskey="Z">ZIP-File für Windows

und Linux</label></td>

</tr>

<tr>

<td class="cl1"><label for="xml" class="c33" tabindex="4" accesskey="X">als

<span class="c32">X</span>ML-File</label> </td>

<td class="cl1"><input type="checkbox" id="xml" name="xml" onfocus=

"this.style.borderColor='brown'" onblur=

"this.style.borderColor='transparent';"><label for="xml" class="c33" tabindex="4" accesskey="X">XML-File f