Was Sie versuchen zu tun, ist eine schlechte Idee, da sich erstens niemand so viel Mühe geben sollte, um IE6 in einer neuen Webanwendung zu unterstützen, und zweitens ist Ihre HTML-Struktur nicht flexibel und funktioniert nur in einem bestimmten Szenario.
Ich war jedoch neugierig, ob die klassischen IE6-Float-Bugs nur mit CSS und ohne zusätzliches HTML-Code überwunden werden können, und es scheint überraschend möglich zu sein. Der Trick besteht darin, die CSS-Ausdrücke des IE zu verwenden, um nach den Textfeldern Elemente in die Seite einzufügen.
Bei der Emulation von IE6 und IE7 funktionierte der folgende Code in IETester für mich:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <style type="text/css"> #section label input{ float: left; margin-bottom: 10px; *zoom: expression(this.runtimeStyle.zoom="1", this.parentNode.insertBefore(document.createElement("br"), this.nextSibling).style.cssText="clear:both;font:0/0 serif"); } </style> </head> <body> <div id="section"> <h2>Section Title</h2> <label for="name">Name</label> <input type="text" id="name" /> <label for="dob">Date of Birth</label> <input type="text" id="dob" /> <label for="email">Email</label> <input type="text" id="email" /> </div> </body> </html>
Basierend auf Informationen von dieser Seite