我有一个field_wrapper类div,其中包含3个子divs field_label,field_input和field_error
我需要将field_label,field_input并排放在前两个字段下面。
请参阅下面的css代码,了解我是如何实现这一点的,我的问题是它在IE7中不起作用。清除两者应用于field_error都无法正常工作。
即使经过谷歌搜索很长一段时间,我也找不到合适的方法来解决这个问题而不添加HTML标记。请提示css技巧或任何其他方法以避免额外的标记代码
.field_wrapper
{
clear:both;
}
.field_label
{
float:left;
width:40%;
}
.field_input
{
float:left;
width:40%;
}
.field_error
{
clear: both;
color:#FF0000;
float: right;
text-align:left;
width: 60%;
}
<form method="post" action="http://localhost/locations/add">
<div class="field_wrapper">
<div class="field_label">
<label for="location_add_name">Name</label>
</div>
<div class="field_input">
<input type="text" id="location_add_name" value="" name="name">
</div>
<div class="field_error">
<p>The Name field is required.</p>
</div>
</div>
<div class="field_wrapper">
<div class="field_label">
Address
</div>
<div class="field_input">
<textarea id="location_add_address" rows="12" cols="90" name="address"></textarea>
</div>
<div class="field_error">
</div>
</div>
<div class="form_submit">
<input type="submit" value="Add" name="submit">
</div>
</form>
答案 0 :(得分:5)
如果您不想移除浮动左侧。您可以使用此包装器代码
.field_wrapper { display: inline-block; }
.field_wrapper:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
* html .field_wrapper { height: 1%; }
.field_wrapper{ display: block; }
每次都适合我(IE6也是如此)
<强>更新强>
我再次看了一遍,并稍微更改了标记,也使其有效xhtml。 只需将课程放在P标签上,您就不需要额外的div。
.field_wrapper
{
clear:both;
}
.field_label
{
float:left;
width:40%;
}
.field_input
{
float:left;
width:40%;
}
.field_error
{
clear: both;
color:#f00;
width: 60%;
}
<form method="post" action="http://localhost/locations/add">
<div class="field_wrapper">
<div class="field_label">
<label for="location_add_name">Name</label>
</div>
<div class="field_input">
<input type="text" id="location_add_name" value="" name="name" />
<p class="field_error">The Name field is required.</p>
</div>
</div>
<div class="field_wrapper">
<div class="field_label">Address</div>
<div class="field_input">
<textarea id="location_add_address" rows="12" cols="90" name="address"></textarea>
</div>
</div>
<div class="form_submit">
<input type="submit" value="Add" name="submit" />
</div>
</form>
答案 1 :(得分:3)
从'field_error'
中删除float:right答案 2 :(得分:2)
让我先告诉你一件事。如果你在容器中有浮动内容,容器永远不会包含它,除非你将容器溢出属性设置为隐藏或者让它浮动你。喜欢
.field_wrapper
{
clear:both;
overflow:hidden;
}
现在它包含所有浮动元素。现在为你的错误div,因为你将元素浮动到左边,所以要清楚:只留下它,它会起作用。
由于