通常我使用无序列表标签来设计表单,例如
<fieldset>
<ul>
<li>
<label for="txtName">Name</label>
<input type="text" id="txtName" />
</li>
</ul>
</fieldset>
然而,我经常看到使用<p>
标签代替,像这样:
<fieldset>
<p>
<label for="txtName">Name</label>
<input type="text" id="txtName" />
</p>
</fieldset>
哪一个在语义上更正确?除了以下方法之外,不同的方法有什么优点或缺点?<p>
风格更简洁?
编辑:显然在这里打开了一罐蠕虫 - 更多选择,啊! :)
W3C 有推荐吗?
有趣的是,W3C 的建议似乎是最不优雅的解决方案:
<p>
<input type="radio" name="flavor" id="choc" value="chocolate" />
<label for="choc">Chocolate</label><br/>
<input type="radio" name="flavor" id="cream" value="cream"/>
<label for="cream">Cream Filled</label><br/>
<input type="radio" name="flavor" id="honey" value="honey"/>
<label for="honey">Honey Glazed</label><br/>
<input type="submit" value="Purchase Donuts"/>
</p>
遗憾的是,对于标记表单元素的最佳约定,没有更强有力的指导。
在我看来,一组表单控件既不是列表项也不是段落。当我标记表单时,我将标签/输入组包装在<div>
s。如果您尝试标记div表单控件之间存在差异,那么不要害怕使用<div>
.
<fieldset>
<div class="field">
<label for="txtName">Name</label>
<input type="text" id="txtName" />
</div>
<div class="field">
<label for="txtTitle">Title</label>
<input type="text" id="txtTitle" />
</div>
</fieldset>
从你给出的例子来看,<p>
可能会“更好”地降级,因为如果 CSS 不可用,您将不会在项目旁边看到项目符号,并且控件组可能会间隔得相当好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)