zoukankan      html  css  js  c++  java
  • 简单form标准化实例(二):语义结构

    1、使用 fieldset 和 legend标签

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

    • fieldset:对表单进行分组,一个表单可以有多个fieldset
    • legend:说明每组的内容描述
    <form id="demoform" class="democss"  action="">
    <fieldset>
    <legend>Basic  Register</legend>
    <p>First name: <input type="text"  name="fname" value=""  /></p>
    ...
    </fieldset>
    <fieldset>
    <legend>Detailed  Register</legend>
    <p>Interest: <input type="text"  name="interest" value=""  /></p>
    ...
    </fieldset>
    ...
    </form>
    

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

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

    2、使用 label 标签

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

    <form id="demoform" class="democss"  action="">
    <fieldset>
    <legend>Basic  Register</legend>
    <p>
    <label for="fname">First  name:</label>
    <input type="text" id="fname" name="fname" value=""  />
    </p>
    ...
    </fieldset>
    <fieldset>
    <legend>Detailed  Register</legend>
    <p>
    <label  for="interest">Interest:</label>
    <input type="text"  id="interest" name="interest" value=""  />
    </p>
    ...
    </fieldset>
    ...
    </form>
    

    除了以上方法,我们还可以用 label 套嵌整个表单组件和文本标签,如:

    <label for="fname">First name:<input type="text"  id="fname" name="fname" value="" /></label>

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

    3、使用 accesskey 和 tabindex 属性

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

    <label for="fname" accesskey="f" tabindex="1" >First  name:</label>
    <input type="text" id="fname" name="fname" value=""  />
    

    4、使用 optgroup 标签

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

    <select name="China">
    <optgroup  label="Jiangsu">
    <option  value="nj">Nanjing</option>
    <option  value="sz">Suzhou</option>
    </optgroup>
    <optgroup  label="Zhejiang">
    <option  value="hz">Hangzhou</option>
    <option  value="wz">Wenzhou</option>
    </optgroup>
    </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.

    定义与用法

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

    <button><img src="images/click.gif" alt="Click Me!"  />Click  Me!</button>

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

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

  • 相关阅读:
    QtAV编译
    git 恢复到刚刚clone下来的状态
    select2 清除选中项解决办法
    mysql: 查看某库表大小
    C# Linq 交集、并集、差集、去重
    mvc ajax访问后台时session过期无法跳转到Login页面问题解决
    Asp.net:上传文件超过了最大请求长度
    Firebug 没死,活在 Firefox DevTools 中
    vs2015 加载项目的时启动:无法启动 IIS Express Web 服务器
    Visual Studio安装SVN插件
  • 原文地址:https://www.cnblogs.com/analyzer/p/1203104.html
Copyright © 2011-2022 走看看