[翻译]标记语言和样式手册 chapter 5 表单

作者:zhaozy 来源:3user.com 时间:2008-01-23 17:20:00 

阅读上一章:Chapter 4 引用

互动性一直是互联网的重点,让使用者与网站能够交换信息,彼此沟通.表单使我们能够有组织的,使用同一方式的从使用者那里收集资料,因此在设计网站时总是属于"任何状况都能拿来用"的那一类,举例来说,我们发现大概有10000种标记表单的不同方式.好吧,或许没有那么多,但是我们仍能思考几种状况,让使用者易于使用表单结构,同时也便于让网站所有者进行管理.

标记表单的方法

方法A:使用表格

<form action="/path/to/script" method="post">
  <table>
    <tr>
      <th>Name:</th>
      <td><input type="text" name="name" /></td>
    </tr>
    <tr>
      <th>Email:</th>
      <td><input type="text" name="email" /></td>
    </tr>
    <tr>
      <th>&nbsp;</th>
      <td><input type="submit" value="submit" /></td>
    </tr>
  </table>
</form>

长久以来许多人都以表格来标记表单,由于使用频率很高的缘故,我们已经习惯于见到表单以这种方式进行排版:左列是向右对齐的文字说明,右列则是相左对齐的表单元素.使用单纯的两列表格,是完成易用表单排版的简单方法之一.

有些人认为不需要表格,也有其他人认为应该把表单视为表状资料.我们不打算支持任何一种说法,但是在某些情况下,使用表格时达成特定表单排版的最佳方法,特别是包含许多种不同元素的复杂表单(使用了单选框,下拉选框等等的表单).完全依赖CSS处理这种表单的排版可能会让人感到挫折,而且经常需要加上额外的<span>与<div>,会比表格耗上更多的标签.

接着看图5-1,这是一般可视化浏览器显示方法A的效果:


图5-1:浏览器显示的方法A的效果

你会发现,使用表格可以把文字说明表单元素排列的十分整齐.然而,对这样简单的表单来说,或许我会避免选择使用表格,并且换用其他不需要使用这么多标签的方法.除非表单的视觉设计十分需要这种排版,否者未必需要使用表格.同时我们也要考虑几个易用性问题,在研究下面两个方法的时候,我们就会接触到这个部分.

方法B:不用表格,但挤在一起

<form action="/path/to/script" method="post">
  <p>
    Name: <input type="text" name="name" /><br />
    Email: <input type="text" name="email" /><br />
    <input type="submit" value="submit" />
  </p>
</form>

使用单一段落和几个<br />标签隔开所有元素是个可行方法,但视觉上可能会被描绘的有点挤.图5-2十一版浏览器的显示效果:

图5-2:浏览器显示方法B的效果

虽然我们不用表格就能完成排版,但是它看起来有点挤,有点丑.同时我们也遇上表单元素无法完美对齐的问题.

input{
    margin:6px 0;
}

前面这段为每个<input>元素的上下分别加上6像素的外补丁(包含了Name,Email的输入框,以及submit按钮),在元素之间加上额外的空间.就像图5-3一样:

 

图5-3.方法B在为input元素加上外补丁之后的效果

方法B本身没什么大问题,但是还能进行一些微调,以便把表单做得更好.方法C里头也运用了这些微调技巧,所以一起来看看吧.

方法C:朴素,更容易使用

<form action="/path/to/script" id="thisform" method="post">
  <p><label for="name">Name:</label><br />
  <input type="text" id="name" name="name" /></p>
  <p><label for="email">Email:</label><br />
  <input type="text" id="email" name="email" /></p>
  <p><input type="submit" value="submit" /></p>
</form>

我喜欢方法C的几个地方.首先,对于类似本示例的单纯表单来说,我发现把每个说明与表单元素放在单独的段落比较方便,不加上样式显示时,段落之间的预设距离应该足以让你轻松阅读内容.稍后我们还能以CSS为表单内包含的<p>标签设定间隔.

我们甚至更进一步,为表单设定了唯一的id="thisform".因此,刚才我提到的精确间隔大致上可以写成这样:

#thisform p{
margin:6px 0;
}

这代表将这个表单内的<p>标签的上下外补丁设定为6个像素,覆盖浏览器为一般段落选用的预设值.

方法C与前两种方法的另一个不同之处在于:尽管每个群组(说明和输入框)都放在<p>里头,我们仍以<br />把他们放在独立的一行.使用<br />分开每个元素,就能绕过文字长短不一,造成输入项无法完美对齐的问题.

图5-4是一般浏览器显示方法C的效果,这边有使用先前为<p>标签设定的样式.

图5-4.浏览器显示方法C的效果,有对P标签使用CSS

除了方法C的视觉效果之外,最重要的优点:也就是提升易用性的部分.

标签:样式,标记,css,手册,表单
0
投稿

猜你喜欢

  • 使用SQL2000将现有代码作为Web服务提供

    2009-02-19 17:20:00
  • 5个有效改进网页UI设计的技巧

    2008-12-19 12:04:00
  • LZ77 算法的JS实现

    2010-04-11 22:32:00
  • 自然选择:自然界的颜色与界面设计[译]

    2009-09-19 17:17:00
  • Google logo “我的中国”谷歌国际少年绘画大赛小学1-3年级

    2008-12-19 12:26:00
  • HTML4标签的默认样式列表

    2007-09-28 22:00:00
  • Dreamweaver初学者常见问题解答

    2007-02-03 11:39:00
  • ie6 img onload

    2009-04-08 17:23:00
  • 不是原型继承那么简单!prototype的深度探索

    2008-03-07 12:42:00
  • SQL语句的执行原理分析

    2012-01-29 18:17:36
  • 网页设计的12种颜色

    2011-05-21 08:40:00
  • 单选的radia,和多选的checkbox如何判定选择?

    2008-11-26 12:29:00
  • 网页栅格系统研究(4):技术实现

    2008-11-06 11:44:00
  • AJAX的jQuery实现入门(二)

    2008-05-01 13:04:00
  • MYSQL数据库常用命令集合

    2009-02-26 16:01:00
  • asp如何选择访问速度最快的站点?

    2010-06-10 18:34:00
  • asp生成一个不重复的随机数字

    2007-09-12 19:12:00
  • MySQL的数据库数据备份和恢复详解

    2012-01-29 18:19:07
  • 什么是好的设计

    2010-02-25 12:22:00
  • Oracle AS关键字 提示错误

    2011-04-18 12:42:00
  • asp之家 网络编程 m.aspxhome.com