提高用户体验之label
上次向大家介绍了dl, dt, dd的使用(见《被遗忘的DL, DT, DD》),希望对大家有所帮助。今天再介绍一个有意思的标签:label。我们一般把label绑定表单控件。当被关联的控件为表单控件时,用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。由于这个特性,label标签经常被用来绑定一些表单控件,其中用于关联checkbox(复选框), radio(单选钮)比较多。因为单选钮、复选框在默认情况下都需要点击控件才能选中,而使用label就可以实现点击文字选中。比如:
点我(文字)这里试试?
在上面的例子中,点第一段文字后会把radio选中,点击第二段文字则不会。其中关键的秘密就是第一段用了label,而第二段则没有用。用label的好处就在于不必强迫用去一点要去点那个radio,因为那个radio通常很小,不容易点中。使用label标签给了用户更宽的点击区域,又不需要什么额外的代码,很方便啊。可以想象如果我们不用label的话可能要用很长一段脚本去实现相似的功能。
label主要有两个属性:for和accesskey。 for表示label控件需要联到哪个控件,即为哪个控件服务。需要说明的是for 后面需要加控件的ID,而不是name。 accesskey表示访问label的快捷键,如设置“X”,表示当用户按下ALT+X时,label将会被触发
另外按照标准,for是可以省略得。当label 的for不指定时,它会自动关联到label的内容。遗憾的是伟大的ie(6)不支持这种方式。
另外需要注意的是脚本编写时label的onclick和onfocus是有所区别的。用户点击label时,首先会触发label的onclick事件,然后将把click传递给绑定的控件;但对于onfocus则不是这样的,只会触发绑定控件的focus。