< div > inside < label > block 是否正确?

我正在使用 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)

67394 次浏览

不,HTML 不允许 <label>包含 <div>


标签元素的规范:

内容模型: 短语化内容,但没有子代标签元素,除非它是元素的标签控件,并且没有子代标签元素。

措辞内容链接到:

短语内容是文档的文本,以及在段落内标记文本的元素。段落内容的组合。

a abbr area(如果它是映射元素的后代)