Hola otra vez:
Con un script usando el DOM (creando tags dinámicamente) conseguí que validara en strict...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
Código:
<html>
<head>
<title>
Marcos
</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1" >
<script type="text/javascript" >
function hacerFrames() {
var conjunto = document.createElement("frameset");
conjunto.cols = "150,*";
conjunto.border = "0";
var frameIzq = document.createElement("frame");
frameIzq.name = "izq";
frameIzq.src = "izq.html";
var conjuntoDerecha = document.createElement("frameset");
conjuntoDerecha.rows = "50%,*";
var derArr = document.createElement("frame");
derArr.name = "derarr";
derArr.src = "derarr.html";
var derAba = document.createElement("frame");
derAba.name = "deraba";
derAba.src = "deraba.html";
conjuntoDerecha.appendChild(derArr);
conjuntoDerecha.appendChild(derAba);
conjunto.appendChild(frameIzq);
conjunto.appendChild(conjuntoDerecha);
document.documentElement.replaceChild(conjunto, document.body);
}
</script>
</head>
<body onload="hacerFrames()" >
<p>
Validar
</p>
<!--frameset cols="150,*" style="outline: 0; border: 0; margin: 0; padding: 0" >
<frame name="izq" frameborder="0" noresize="noresize" src="izq.html" style="outline: 0; border: 0">
<frameset rows="50%, *" style="outline: 0; border: 0; margin: 0; padding: 0" >
<frame name="derarr" frameborder="0" src="derarr.html" >
<frame name="deraab" frameborder="0" src="deraba.html" >
</frameset>
</frameset-->
</body>
</html>
Pero es un arma de doble filo, porque por ejemplo en opera no se ve nada (tiene un soporte DOM un poco peor) y en mozilla hay más separación, pero supongo que tendría que usar el atributo frameborder, incluso framespacing...
Saludos