我很长一段时间都是开发人员,但是表格一直是我最不喜欢的部分,更具体地说是设计它们!
我真的很想知道你是怎么做形式的,为什么。我在表单字段上与<div>
vs <p>
的开发人员进行了一些讨论。你会坚持哪一个,为什么?
我所说的一个例子:
<form action="" method="post">
<p>
<label for="username">Username:</label>
<input type="text" name="username" id="username" />
</p>
<p>
<label for="submit"></label>
<input type="submit" name="submit" id="submit" value="Log In" />
</p>
</form>
VS
<form action="" method="post">
<div>
<label for="username">Username:</label>
<input type="text" name="username" id="username" />
</div>
<div>
<label for="submit"></label>
<input type="submit" name="submit" id="submit" value="Log In" />
</div>
</form>
在造型方面,似乎你可以对两者做同样的事情,那么这只是个人偏好,还是背后使用其中的逻辑呢?
感谢您的时间:)
更新 我最后关注了一篇关于HTML5表单的精彩文章,并且实际上发现它可以更好地表现形式。从发展的角度来看,它们更有组织性。对于任何感兴趣的人,它位于:http://24ways.org/2009/have-a-field-day-with-html5-forms
答案 0 :(得分:13)
HTML是关于语义的。 {(1}}或username
没有理由在段落(submit
)中,因为它不是段落。
所以我会改用<p>
。好吧,也许<div>
没有任何意义。但它比<div>
好。
答案 1 :(得分:5)
我更喜欢<div>
变体,因为它的语义更接近你要表达和标记的内容。
<p>
标记用于文本段落,而<div>
是任意类型的通用块。
答案 2 :(得分:3)
我想建议一个选项:
您可以考虑将input
包装在其标签内。这样你就可以避免使用其他元素。另外(如果您不需要支持IE6)那么这允许您放弃for
。最后,如果input
是复选框或单选按钮,那么它允许用户单击整个文本而不是微小控件,就像在大多数操作系统中一样:
<label>Username: <input type="text" name="username" /></label>
此外,我不确定提交按钮的空标签的重点是什么,除了在编写样式表时懒惰。
答案 3 :(得分:2)
以为我会把2美分投入(假设我们都同意语义标记是目标):
虽然可以说表单元素本身不是语义,但这并不意味着它们出现的上下文不是很好。标记所有表单控件没有“一种真实的方式”。
如果控件实际上出现在一段文字中,那很好 - 但几乎不会发生。
<ol>
标记中。<ul>
。<dl>
元素是合适的<table>
(是的,表可以是合适的!事实上,我多次听到(有问题的)论证表格数据是表格式的)顺便说一句,它被认为是HTML5中的description list,以消除对意义的混淆,以及它是否适用于文字定义术语以外的其他内容。
几乎没有人会说<p>
是合适的,但很少有人认为<div>
不合适,因为没有附加的语义。
答案 4 :(得分:2)
从语义上讲,每个标签都通过for
属性绑定到其控件。由于出于造型原因,您可能希望出于语义原因包装该对。所以div
是合适的。
同样,控件分组有一个专用元素fieldset
,因此使用ul
,ol
或dl
为此目的没有任何意义,使用它们只是一个列表炎的形式。
答案 5 :(得分:1)
田野集怎么样? - 形式
更合乎逻辑事实上,你可以按照自己想要的方式设计任何风格
答案 6 :(得分:1)
从语义上讲,我认为div更有意义,因为它们没有语义含义,使用像这样的块容器的唯一原因是出于布局目的。也就是说,我使用段落,但完全出于习惯。这是我使用段落的唯一地方,而没有考虑它们的语义。