2010-07-30 36 views
0

我想创建一个HTML表单,并且我的浮动标签离开,并输入正确的,现在在FF它工作正常,并在IE8为好,但是当我去到IE7,换行似乎完全消失,我的元素之间没有空间,它会是什么?IE浮动没有填补错误

我该如何解决?

   <p> 
        <span class='left'><label for='gender'>Gender: </label></span> 
        <span class='right'><select name='gender' id='gender'> 
        <option>Select one</option> 
        <option>Male</option> 
        <option>Female</option> 
        </select> 
        </span> 
       </p> 
       <br /> 
       <p> 
        <span class='left'><label for='name'>Name: </label></span> 
        <span class='right'><input name='name' id='name' /></span> 
       </p> 
       <br /> 

现在由于某种原因,我没有在IE7中的段落之间的空间,即使我正在使用休息。

Thanx提前。

回答

0

什么元素包裹上面的代码?尝试在<br/>标签设置clear: both;,preferrably用CSS类:

.clear { clear:both; } 

<br class="clear" /> 
+0

一个div和表单标签。不幸的是,上面的代码在IE7中不起作用。 Rito也不是。 – Odyss3us 2010-07-30 09:34:54

+1

你有没有宣布你的CSS是正确的?其工作正常(在IE-Tes​​ter中测试) - > http://jsbin.com/idofe3/edit。 给予
一类不工作,因为
本身会漂浮起来,
后彩车将被清除 – Rito 2010-07-30 10:23:01

0

当你的第二个段落开头的第一个还在飘了起来。你需要一个clear:both;clear:right;,使您的工作休息。

.clearer { clear: both; } 

<p class="right">hi</p> 
<div class="clearer"></div> 
<br /> 
<p>hi</p> 
0

你p标签只浮动的内容,因此没有高度

您的p标签只浮动标签和浮动输入的内容,所以它们被视为在零高度IE浏览器。你可能找不到这样的跨浏览器修复,除非你愿意设置在<p>明确的高度或添加非浮动元素进去。

我建议跳过<BR>,只是做与利润的工作。下面是一个例子,假设你提到的包装<div>。

CSS:

.left { float: left; } 
.right { float: right; } 
.wrap p { clear: both; height: 1em; margin: 0 0 1em 0; padding: 0; } 
.wrap br { display: none; } 

HTML:

<form> 
<div class="wrap"> 

<p> 
    <span class='left'><label for='gender'>Gender: </label></span> 
    <span class='right'> 
    <select name='gender' id='gender'> 
    <option>Select one</option> 
    <option>Male</option> 
    <option>Female</option> 
    </select> 
    </span> 
</p> 
<br /> 
<p> 
    <span class='left'><label for='name'>Name: </label></span> 
    <span class='right'><input name='name' id='name' /></span> 
</p> 
<br /> 

</div> 
</form>