HTML表单-您认为应该怎么做?为什么? <div> vs. <p>

问题描述

| 我从事开发人员已经很长时间了,但是表单一直是我最不喜欢的部分,尤其是设计表单! 我真的很想知道您的工作方式以及原因。我已经在表单字段上与form0ѭ和
<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     

解决方法

        HTML全部与语义有关。没有理由在段落(
<p>
)内插入
username
submit
,因为它不是段落。 所以我会改用
<div>
。好的,也许
<div>
完全没有意义。但这比ѭ1好。     ,        我更喜欢“ 0”变体,因为它的语义在您要表达和标记的内容上更接近。 text1ѭ标签用于文本段落,而
<div>
是任何类型的常规块。     ,        我想建议的一种选择是: 您可以考虑将
input
包装在其标签内。这样,您可能可以避免其他元素。另外(如果您不需要支持IE6),那么您可以删除
for
。最后,如果ѭ13是复选框或单选按钮,则它允许用户单击整个文本,而不仅仅是微小的控件,就像在大多数操作系统中一样:
<label>Username: <input type=\"text\" name=\"username\" /></label>
另外,我不确定提交按钮的空标签的作用是什么,除了在编写样式表时比较懒。     ,        只是以为我会投入2美分(假设我们都同意语义标记是目标): 尽管可以说表单元素本身不是语义的,但这并不意味着它们出现的上下文也不是。没有“一种真正的方式”来标记所有表单控件。 如果控件实际上出现在文本的段落中,那很好-但这几乎永远不会发生。 例如,如果它是复选框的有序列表,则将其放在
<ol>
标记中。 如果顺序不相关,在这种情况下,请使用ѭ18。 如果是标签/文本输入对,则可能会认为
<dl>
元素是合适的 如果是电子表格,请使用
<table>
(是的,表格可能是适当的!事实上,我多次听到(可疑的)参数表示表格数据是表格格式的) 顺便说一句,它被视为HTML5中的一个描述列表,以消除有关含义以及它是否适合文字定义术语以外的内容的混淆。 几乎没有人会说ѭ1是合适的,但是很少有人会说ѭ0是不适当的,因为没有附加的语义。     ,        语义上,每个标签都通过“ 14”属性绑定到其控件。尽管出于语义原因,您可能不需要包装这对,但是出于样式原因,您可能希望这样做。因此,
div
是适当的。 同样,控件分组有一个专用元素“ 25”,因此出于此目的使用“ 26”,“ 27”或“ 28”没有任何意义,而将其简单地用作一种李斯特菌。     ,        字段集呢? -表格更合乎逻辑 实际上,您可以按照自己的方式设置任何样式     ,        语义上,我说div更有意义,因为它们没有语义,并且使用这样的块容器的唯一原因是出于布局目的。也就是说,我使用段落,但是完全出于习惯。这是我在不考虑段落语义的情况下使用段落的唯一位置。