Irgendwie sind im Moment die der-Internet-Explorer-ist-gar-nicht-so-schlimm-Wochen, aber egal: Das hier ist ziemlich abgefahren. Microsoft hat mal vor Äonen eine Technologie namens Vector Markup Language (VML) ausgebrütet, die vom W3C nicht als Standard aufgenommen wurde. Das ganze ist also im Allgemeinen also eher nutzlos, aber im IE < 8 noch vorhanden. Und mit dieser Technologie kann kann man runde Ecken bauen.

Zunächst nehme man ein VML-Element wie dieses und packe es in den Quellcode:

<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v" />

Das sagt dem Internet Explorer, dass wir seine seltsamen Vektortechniken zum Einsatz bringen wollen. Es folgt das Vektor-Element selbst:

<v:roundrect arcsize=".1" fillcolor="#000">HIER KOMMT INHALT HIN!</v:roundrect>

Dieses Ding ist die Box, die am Ende die runden Ecken tragen wird. Sodenn style man es, um es in normalen Browsern wie ein normales Block-Element mit border-radius aussehen zu lassen …

v:roundrect
{
	color:#FFF;
	display:block;
	background-color:#000;
	-moz-border-radius:10px;
	-webkit-border-radius: 10px;
	border-radius: 10px;
	padding:8px;
	height:100%;
}

… und setze am Ende mit einem IE-Hack die background-color für den Internet Explorer auf transparent, da sich sonst background-color und das fillcolor-Attribut des VML-Elements gegenseitig das Leben schwer machen. Dazu gehört auch noch eine kleine behavior-Deklaration:

v:roundrect
{
	behavior:url(#default#VML);
	background-color:transparent;
}

Fertig! Natürlich ist das ein Horror-Hack der übelsten Sorte, aber er funktioniert und eines Tages wird irgendwer einen Grund finden, ihn auch einzusetzen. Ich will das jetzt nicht ausprobieren, aber man könnte doch sicher so was in Javascript bauen (Pseudocode):

if(internetExplorer == true)
{
	var elemente = get("Alle Elemente mit border-radius");
	foreach(elemente as element)
	{
		element.ersetzeDurch("Microsofts Horror-Hack");
	}
}

Müsste man mal versuchen, geht sicher irgendwie.