请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 5886|回复: 2

[教程] 简单form标准化实例(二):语义结构 [复制链接]

blank 楼主

怿飞

荣誉管理

帖子
2375
体力
12545
威望
125
居住地
浙江省 杭州市
发表于 2007-2-1 15:17:51 |显示全部楼层
上篇:简单form标准化实例(一):整体布局

1、使用fieldset和legend标签

在form中,我们经常会对form中的信息进行分组,比如注册form,我们可能会将注册信息分组成基本信息(一般为必填),详细信息(一般为可选),那我们如何更好的来实现呢?我们可考虑在form中加入下面两个标签:

fieldset:对表单进行分组,一个表单可以有多个fieldset
legend:说明每组的内容描述

  1. <form id="demoform" class="democss" action="">
  2. <fieldset>
  3. <legend>Basic Register</legend>
  4. <p>First name: <input type="text" name="fname" value="" /></p>
  5. ...
  6. </fieldset>
  7. <fieldset>
  8. <legend>Detailed Register</legend>
  9. <p>Interest: <input type="text" name="interest" value="" /></p>
  10. ...
  11. </fieldset>
  12. ...
  13. </form>
复制代码


fieldset默认是带边框的,而legend默认一般显示在左上角。但在某些场合或许不愿意让fieldset和legend的默认样式或默认布局影响设计方案中的美观。

解决方法:在CSS中将fieldset的border设置为0,legend的display设置为none即可。


2、使用label标签

我们对form中的文本标签给定一个label标签,并使用for属性使其与表单组件相关联,效果为单击文本标签,光标显示在相对应的表单组件内。

  1. <form id="demoform" class="democss" action="">
  2. <fieldset>
  3. <legend>Basic Register</legend>
  4. <p>
  5. <label for="fname">First name:</label>
  6. <input type="text" id="fname" name="fname" value="" />
  7. </p>
  8. ...
  9. </fieldset>
  10. <fieldset>
  11. <legend>Detailed Register</legend>
  12. <p>
  13. <label for="interest">Interest:</label>
  14. <input type="text" id="interest" name="interest" value="" />
  15. </p>
  16. ...
  17. </fieldset>
  18. ...
  19. </form>
复制代码


除了以上方法,我们还可以用label套嵌整个表单组件和文本标签,如:
  1. <label for="fname">First name:<input type="text" id="fname" name="fname" value="" /></label>
复制代码


根据规范,文本会自动与邻接的表单组件关联,但遗憾的是——现在主流的浏览器IE6并不支持这个特性。


3、使用accesskey和tabindex属性

网站要兼顾更多情况下的使用,比如没有光标设备(如鼠标)的情况下,要让使用键盘操作也可以完成form的填写,这时候点击对于它们来说,已经没有任何意义。我们这个时候选用label的accesskey(快捷键,IE下为alt+accesskey属性值,FF下为alt+shift+accesskey属性值)和tabindex属性(Tab键,tabindex属性值为顺序)添加到表单标签上,如label,input等。

  1. <label for="fname" accesskey="f" tabindex="1" >First name:</label>
  2. <input type="text" id="fname" name="fname" value="" />
复制代码



4、使用optgroup标签

optgroup标签的作用是在选择列表中定义了一组选项。我们可以选用optgroup标签给select元素的options分类,并使用label属性,属性值会在下拉列表(select)里显示为一个不可选的、缩进标题。注意:optgroup 不支持嵌套。

  1. <select name="China">

  2. <optgroup label="Jiangsu">
  3. <option value="nj">Nanjing</option>
  4. <option value="sz">Suzhou</option>
  5. </optgroup>

  6. <optgroup label="Zhejiang">
  7. <option value="hz">Hangzhou</option>
  8. <option value="wz">Wenzhou</option>
  9. </optgroup>

  10. </select>
复制代码


IE6.0 中存在一个小Bug(FireFox 中不存在):使用键盘方向键进行选择时,在 IE 中,当选中项由一个optgroup的选项换成另一optgroup 的选项时,不会触发onchange。解决办法是:增加 onkeydown 或 onkeyup 事件协助解决。


5、使用button标签

Definition and Usage
Defines a push button. Inside a button element you can put content, like text or images. This is the difference between this element and buttons created with the input element.


定义与用法
定义为一个提交按钮。在button元素内你可以放置内容,像文本(text)或者图片(images)。这是这个元素和input元素按钮的区别。

  1. <button><img src="images/click.gif" alt="Click Me!" />Click Me!</button>
复制代码


button相对于input提供了更多的功能与更丰富的内容。button将按钮文字单独出来,并且可以在button内添加图片,赋予文字和图片更多选择的样式,使生硬的按钮变得更生动。

并且使用button标签将比input按钮来得更有语义化,简单的从字面意思也可以理解。

首发BLOG:http://www.planabc.net/article.asp?id=101

下期预告:《简单form标准化实例(三):表单控件(form controls) 优化》

[ 本帖最后由 blankzheng 于 2007-2-26 08:44 编辑 ]
已有 1 人评分威望 收起 理由
greengnn + 3 加分收录

总评分: 威望 + 3   查看全部评分

个人Blog:PlanABC   团队Blog:淘宝UED  专注Web前端技术!
西部数码顶级域名注册商39元抢注!

徐徐

银牌会员

帖子
1231
体力
5102
威望
24
发表于 2007-2-1 15:21:50 |显示全部楼层
label应该重视,貌似LZ有篇文章专门说Label的使用的,受益非浅~~
期待下篇
Simple,Natural,Actual
HotHear's BLOG
租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

blank 楼主

怿飞

荣誉管理

帖子
2375
体力
12545
威望
125
居住地
浙江省 杭州市
发表于 2007-2-1 15:23:59 |显示全部楼层
原帖由 HotHeart 于 2007-2-1 15:21 发表
label应该重视,貌似LZ有篇文章专门说Label的使用的,受益非浅~~
期待下篇


你说的是这篇吧《checkbox的完美用户体验》

BTW:文章的第二点和第三点在《checkbox的完美用户体验》曾经涉及过!

[ 本帖最后由 blankzheng 于 2007-2-1 15:34 编辑 ]
个人Blog:PlanABC   团队Blog:淘宝UED  专注Web前端技术!

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-12 07:59 , Processed in 0.065361 second(s), 11 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部