我一直在敲打我的脑袋一天试图获得浮动并清除在旧版本的Internet Explorer中正常工作。我已经阅读了许多关于使用.clear的教程:在技巧之后等等但是我无法得到任何实际工作!
我有这样的HTML:
<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>
和CSS这样:
#section {border:solid 2px #b7ddf2; background:#ebf4fb; margin-top: 20px;}
#label{clear: left; float: left; width: 300px; margin-left: 20px; margin-bottom: 10px;}
#input{float: left; margin-bottom: 10px;}
在现代浏览器中,例如Opera 25,显示如下:
Name [Name field]
Date of birth [Date of birth field]
Email [Email]
在旧版本的Internet Explorer(6或7)中,它显示为:
Name [Name field] [Date of birth field] [Email field]
Date of birth
E-mail
我不想调整我的HTML,任何人都可以帮我修复CSS吗?
谢谢,我知道我可以通过在HTML中添加额外的DIV来解决这个问题,但我很想避免这种情况,除非没有其他选择。
—
Craig Johnstone 2014年
这是stackoverflow.com的问题,你在那里有一个帐户。
—
Sacha K 2014年
@CraigJohnstone:你有没有机会从我的答案中测试代码?我很确定这是做你要求的唯一方法。在IE 6/7中未正确处理浮动元素,这就是需要这些变通方法的原因。此外,我的解决方案的优势在于除IE6和IE7之外的所有浏览器都将忽略该变通方法。
—
James P
@SachaK,谢谢 - 我完全同意。我不确定这最终会如何超级用户。我没有听说过超级用户到现在为止,我想我是张贴在计算器,直到我注意到您的评论,并检查了URL。
—
克雷格约翰斯通2014年
<label for="name">Name</label> <input type="text" id="name" /> </div style="clear:both;" ></div>