我的html中有以下代码:
<li>
<p>
<input type="checkbox" id="is_selected"/>
<img src="http://site.com/images/user44.png" alt=""/>
<label for="is_selected">Bob Smith</label>
</p>
</li>
当我渲染它时,会发生的事情是标签'Bob Smith'的右侧有很多空白区域。用户必须直接点击“Bob Smith”才能切换复选框,如果他在空白处右键单击,则不会发生任何事情。
我该怎么做才能让'Bob Smith'标签延伸到右边的整个空间?
我在标签上尝试了width: 100%
,但它没有任何效果。
答案 0 :(得分:2)
label {
display: block;
}
除非另有说明,否则宽度为100%。
编辑:
使用css将标签设为block
级元素会导致我认为会出现一些验证错误,因为block
级别元素不应放在<p />
标记中。如果您实现此标记,请考虑<p />
标记的替代方法,<div />
在这里可以做得很好。
答案 1 :(得分:2)
使用overflow: hidden
以及浮动控件。
http://jsfiddle.net/Eric/br84k/
label {
display: block;
overflow: hidden;
line-height: 20px;
}
input, img {
float: left;
display: block;
height: 20px;
}
答案 2 :(得分:1)
将label
display:inline-block;
设为width
,然后设置{{1}}以填充剩余的空间。