HTML5官方文档学习笔记(三)----HTML表单指南

这篇博客总结了HTML5中表单元素的新特性,重点介绍了`<fieldset>`和`<legend>`元素的使用,以及多个标签的处理方式。`<fieldset>`元素用于组织相关表单控件,`<legend>`提供了对`<fieldset>`内控件的描述。尽管可以为一个控件添加多个标签,但通常不推荐,建议使用`<fieldset>`和`<legend>`来提高语义性和辅助技术的兼容性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTML4中已有的表单控件这里我就不再重复介绍了,这里大致总结一下HTML5中表单元素新增的部分

<fieldset><legend> 元素

<fieldset>元素是一种方便的用于创建具有相同目的的小部件组的方式,出于样式和语义目的。 你可以在<fieldset>开口标签后加上一个 <legend>元素来给<fieldset> 标上标签。 <legend>的文本内容正式地描述了<fieldset>里所含有部件的用途。

许多辅助技术将使用<legend> 元素,就好像它是相应的 <fieldset> 元素里每个部件的标签的一部分。例如,在说出每个小部件的标签之前,像Jaws或NVDA这样的屏幕阅读器会朗读出legend的内容。
这里给出MDN上的一个例子:

<form>
  <fieldset>
    <legend>Fruit juice size</legend>
    <p>
      <input type="radio" name="size" id="size_1" value="small">
      <label for="size_1">Small</label>
    </p>
    <p>
      <input type="radio" name="size" id="size_2" value="medium">
      <label for="size_2">Medium</label>
    </p>
    <p>
      <input type="radio" name="size" id="size_3" value="large">
      <label for="size_3">Large</label>
    </p>
  </fieldset>
</form>

多个标签

严格地说,您可以在一个小部件上放置多个标签,但是这不是一个好主意,因为一些辅助技术可能难以处理它们。在多个标签的情况下,您应该将一个小部件和它的标签嵌套在一个

<p>Required fields are followed by <abbr title="required">*</abbr>.</p>

<!--这样写:-->
<div>
  <label for="username">Name:</label>
  <input type="text" name="username">
  <label for="username"><abbr title="required">*</abbr></label>
</div>

<!--但是这样写会更好:-->
<div>
  <label for="username">
    <span>Name:</span>
    <input id="username" type="text" name="username">
    <abbr title="required">*</abbr>
  </label>
</div>

<!--但最好的可能是这样:-->
<div>
  <label for="username">Name: <abbr title="required">*</abbr></label>
  <input id="username" type="text" name="username">
</div>

HTML 缩写元素(<abbr>)用于展示缩写,并且可以通过可选的 title 属性提供完整的描述。若使用 title 属性,则它必须且仅可包含完整的描述内容。

用于表单的通用HTML结构

	<section>
        <h2>Contact information</h2>
        <fieldset>
            <legend>Title</legend>
            <ul>
                <li>
                <label for="title_1">
                    <input type="radio" id="title_1" name="title" value="M." >
                    Mister
                </label>
                </li>
                <li>
                <label for="title_2">
                    <input type="radio" id="title_2" name="title" value="Ms.">
                    Miss
                </label>
                </li>
            </ul>
        </fieldset>
        <p>
            <label for="name">
            <span>Name: </span>
            <strong><abbr title="required">*</abbr></strong>
            </label>
            <input type="text" id="name" name="username">
        </p>
        <p>
            <label for="mail">
            <span>E-mail: </span>
            <strong><abbr title="required">*</abbr></strong>
            </label>
            <input type="email" id="mail" name="usermail">
        </p>
        <p>
            <label for="pwd">
            <span>Password: </span>
            <strong><abbr title="required">*</abbr></strong>
            </label>
            <input type="password" id="pwd" name="password">
        </p>
    </section>
    <section>
        <h2>Payment information</h2>
        <p>
            <label for="card">
            <span>Card type:</span>
            </label>
            <select id="card" name="usercard">
            <option value="visa">Visa</option>
            <option value="mc">Mastercard</option>
            <option value="amex">American Express</option>
            </select>
        </p>
        <p>
            <label for="number">
            <span>Card number:</span>
            <strong><abbr title="required">*</abbr></strong>
            </label>
            <input type="number" id="number" name="cardnumber">
        </p>
        <p>
            <label for="date">
            <span>Expiration date:</span>
            <strong><abbr title="required">*</abbr></strong>
            <em>formatted as mm/yy</em>
            </label>
            <input type="date" id="date" name="expiration">
        </p>
    </section>
    <p> <button type="submit">Validate the payment</button> </p>
Html 5 标签(按照英文字母a~z顺序排列): 1、<!--...--> 定义注释。 2、<!DOCTYPE> 定义文档类型。 3、<a> 定义超链接。 4、<abbr> 定义缩写。 5、<address> 定义地址元素。 6、<area> 定义图像映射中的区域。 7、<article> 定义外部的内容。 8、<aside> 定义article 以外的内容。 9、<audio> 定义声音内容。 10、<b> 定义粗体文本。 11、<base> 定义页面中链接的基准 URL。 12、<bdo> 定义文本显示的方向。 13、<blockquote> 定义摘自另一个源的块引用。 14、<body> 定义文档主体。 15、<br> 定义换行符。 16、<button> 定义按钮。 17、<canvas> 定义图形。 18、<caption> 定义表格标题。 19、<col> 定义表格列的属性。 20、<colgroup> 定义表格列的分组。 21、<command> 定义命令按钮。 22、<datalist> 定义下拉列表。 23、<dd> 定义定义的描述。 24、<del> 定义删除文本。 25、<details> 定义元素的细节。 声明:本电子书内容源于网络,所有内容仅供测试, 不保证内容的正确性! HTML 5中文参考手册 由夏天(博客:www.xiatianhk.com)收集并整理 26、<div> 定义文档中的一个部分。 27、<dl> 定义定义列表。 28、<dt> 定义一个定义列表里的项目。 29、<embed> 定义外部交互内容或插件。 30、<fieldset> 可将表单内的相关元素分组。 31、<figcaption> 定义 figure 元素的标题。 32、<figure> 定义媒介内容的分组。 33、<footer> 定义section/page的页脚。 34、<form> 定义表单。 35、<h1> --- <h6> 定义标题 1 到标题 6。 36、<head> 定义关于头部文档的信息。 37、<header> 定义文档的页眉。 38、<hgroup> 定义文档中的 section 信息。 39、<hr> 定义水平线。 40、<html> 定义 html 文档。 41、<i> 定义斜体文本。 42、<iframe> 定义行内的子窗口(框架)。 43、<img> 定义图像。 44、<input> 定义输入域。 45、<ins> 定义插入文本。 46、<keygen> 定义生成密钥。 47、<label> 定义表单控件的标注。 48、<legend> 定义 fieldset 中的标题。 49、<li> 定义列表的项目。 50、<link> 定义资源引用。 51、<map> 定义图像映射。 声明:本电子书内容源于网络,所有内容仅供测试, 不保证内容的正确性! HTML 5中文参考手册 由夏天(博客:www.xiatianhk.com)收集并整理 52、<mark> 定义有记号的文本。 53、<menu> 定义菜单列表。 54、<meta> 定义元信息。 55、<meter> 定义预定义范围内的度量。 56、<nav> 定义导航链接。 57、<noscript> 定义 noscript 部分。 58、<object> 定义嵌入对象。 59、<ol> 定义有序列表。 60、<optgroup> 定义选项组。 61、<option> 定义下拉列表中的选项。 62、<output> 定义输出的一些类型。 63、<p> 定义段落。 64、<param> 为对象定义参数。 65、<pre> 定义预格式化文本。 66、<progress> 定义任何类型的任务的进度。 67、<q> 定义短的引用。 68、<rp> 定义非ruby显示的内容。 69、<rt> 定义 ruby 注释的解释。 70、 <ruby> 定义 ruby 注释。 71、<script> 定义脚本。 72、<section> 定义文档中的节(section)。 73、<select> 定义可选列表。 74、<source> 定义媒介源。 75、<span> 定义文档中的节元素。 76、<style> 定义样式定义。 77、<sub> 定义下标文本。 声明:本电子书内容源于网络,所有内容仅供测试, 不保证内容的正确性! HTML 5中文参考手册 由夏天(博客:www.xiatianhk.com)收集并整理 78、<summary> 定义 details 元素的标题。 79、<sup> 定义上标文本。 80、<table> 定义表格。 81、<tbody> 定义表格的主体。 82、<td> 定义表格单元。 83、<textarea> 定义 textarea。 84、<tfoot> 定义表格的脚注。 85、<th> 定义表头。 86、<thead> 定义表头。 87、<time> 定义日期/时间。 88、<title> 定义文档的标题。 89、<tr> 定义表格行。 90、<ul> 定义无序列表。 91、<video> 定义视频。
Ajax框架介绍   虽然大部分开发人员在过去使用过XMLHttp或者使用Iframe来加载数据,但仅到现在我们才看到传统的开发人员和公司开始采用这些技术。就像新的编程语言或模型伴随着更多的痛苦,开发人员需要学习新的技巧及如何最好利用这些新技术。   AJAX模式   许多重要的技术和AJAX开发模式可以从现有的知识中获取。例如,在一个发送请求到服务端的应用中,必须包含请求顺序、优先级、超时响应、错误处理及回调,其中许多元素已经在Web服务中包含了,就像现在的SOA。AJAX开发人员拥有一个完整的系统架构知识。同时,随着技术的成熟还会有许多地方需要改进,特别是UI部分的易用性。   AJAX开发与传统的CS开发有很大的不同。这些不同引入了新的编程问题,最大的问题在于易用性。由于AJAX依赖浏览器的JavaScript和XML,浏览器的兼容性和支持的标准也变得和JavaScript的运行时性能一样重要了。这些问题中的大部分来源于浏览器、服务器和技术的组合,因此必须理解如何才能最好的使用这些技术。   综合各种变化的技术和强耦合的客户服务端环境,AJAX提出了一种新的开发方式。AJAX开发人员必须理解传统的MVC架构,这限制了应用层次之间的边界。同时,开发人员还需要考虑CS环境的外部和使用AJAX技术来重定型MVC边界。最重要的是,AJAX开发人员必须禁止以页面集合的方式来考虑Web应用而需要将其认为是单个页面。一旦UI设计与服务架构之间的范围被严格区分开来后,开发人员就需要更新和变化的技术集合了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值