html - 表单:您的 CSS 是否适合您的标记,反之亦然?

标签 html css forms markup

关于html表单,一个很常见的标记模式是:

<form ...>
  <p>
    <label>Name:</label>
    <input .../>
  </p>
  <p>
    <label>Birthdate:</label>
    <input .../>
  </p>
  ..
  <input type=submit/>
</form>

您通常会提供多少标记(类等)来实现最灵活的表单视觉格式设置?也就是说,您添加了多少标记来帮助您的 css 选择器,您是否使用通用选择器?

<form ...>
  <p class='name'>
    <label>Name:</label>
    <input .../>
  </p>
  <p class='birthdate'>
    <label>Birthdate:</label>
    <input .../>
  </p>
  ..
  <input type=submit/>
</form>

对比

<form class='person' ...>
  <p class='name string'>
    <label>Name:</label>
    <input .../>
  </p>
  <p class='birthdate date'>
    <label>Birthdate:</label>
    <input .../>
  </p>
  ..
  <input type=submit/>
</form>

在第二种情况下,直接从数据库添加通用类型(“日期”)可以更容易地一致地格式化日期字段。包装一个分组(“人”)以显示字段来自的模型,也可以提供帮助。 (或者我可以使用内部 DIV。)然而,为了增加 css 重用,我发现自己添加了额外的标记。在我读过的一些书中,我听说标记越少越好(虽然这条线对我来说很真实,但它可能非常灰色)。例如,我完全可以使用前面 block 中的标记并向 css 添加更多选择器。

在决定多少标记有意义时,您的原则是什么?或者在 css 端放多少?

此外,我知道我可以根据输入的名称进行选择,但由于这是一个嵌套元素,我失去了从外包装(“p”)控制格式的能力,这通常是我需要额外控制的地方。

最佳答案

我倾向于使用定义列表标签来设计我的表单。

<form>
  <dl>

    <dt><label for="name">Name:</label></dt>
    <dd><input name="name" /></dd>

    <dt><label for="birthdate">Birthdate:</label></dt>
    <dd><input name="birthdate" /></dd>

    ...
  </dl>
</form>

我还使用了以下 CSS:

FORM DT {
   clear:both;
   width:33%;
   float:left;
   text-align:right;
}

FORM DD {
   float:left;
   width:66%;
   margin:0 0 0.5em 0.25em;
}

更多信息在这里:http://www.clagnut.com/blog/241/

标记很多,但效果一致有效。

另一种可以接受的样式化表单方法是使用表格。只需将表单视为“交互式表格数据”即可。

关于html - 表单:您的 CSS 是否适合您的标记,反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1427708/

相关文章:

javascript - 如何使网页的导航栏从左到右对齐?

python - 使用 BeautifulSoup 导航

javascript - 在 iframe 中滚动时无法保持 div 固定

javascript - jquery 禁用表单和链接中的提交/单击按钮

php - 如何在mysql中使用like条件与更多单词

javascript - 使用 "if $(element).is(...)"检查数组元素

css - 底部的粘性页脚

html - 两列 div 布局填充父 div 的整个高度

css - 隐藏一个 <li> 元素类

html - Firefox 中旋转元素上的框阴影