我正在使用Bootstrap,它是横向形式的演示:
<form class="form-horizontal" role="form">
<div class="form-group">
<label for="inputEmail1" class="col-lg-2 control-label">Email</label>
<div class="col-lg-10">
<input type="email" class="form-control" id="inputEmail1">
</div>
</div>
</form>
但我不想为每个<input>
创建ID,所以
<form class="form-horizontal" role="form">
<div class="form-group">
<label class="block">
<span class="col-lg-2 control-label">Email</span>
<div class="col-lg-10">
<input type="email" class="form-control">
</div>
</label>
</div>
</form>
但display:block
不能在display:inline
内,所以我使用CSS
.block {
display: block;
}
它正在运作,但它是否正确?因为我听说我们不应该将display:block
元素放入display:inline
元素(label
)
答案 0 :(得分:67)
请参阅the specification for the label element:
内容模型: 短语内容,但没有后代可标记元素,除非它是元素的标记控件,没有后代标签元素。
短语内容链接到:
短语内容是文档的文本,以及在段落内标记该文本的元素。短语内容的运行形成段落。
a abbr area
(如果它是地图元素的后代)audio b bdi bdo br button canvas cite code data datalist del dfn em embed i iframe img input ins kbd keygen label map mark math meter noscript object output progress q ruby s samp script select small span strong sub sup svg textarea time u var video wbr text
所以没有。 HTML不允许<label>
包含<div>
。