《HTML 5+CSS 3入门经典》——3.1 新增的元素与属性

简介: 本节书摘来自华章计算机《HTML 5+CSS 3入门经典》一书中的第3章,第3.1节,作者:管媛辉 潘凯华著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.1 新增的元素与属性

在创建Web应用程序的时候,免不了会用到大量的表单元素。HTML 5标准中吸纳了WebForms 2.0的标准,大幅强化了针对表单元素的功能,使得关于表单的开发更快、更方便。
3.1.1 新增的属性
我们先来看HTML 5新增的属性、函数和元素。如同新增的输入型控件一样,不管目标浏览器是否支持新增属性,我们都可以放心地使用这些新增的属性。这主要是因为现在大多数浏览器在不支持这些属性时,会直接忽略它们,而不是报错。
1 . placeholder
当用户还没有输入值的时候,输入型控件可以通过placeholder属性向用户显示描述性说明或者提示信息。使用placeholder属性,只需要将说明性文字作为该属性的值即可。除了普通的文本输入框外,email、number、url等其他类型的输入框也都支持placeholder属性。placeholder属性的使用方法如下所示。

<label>text:<input type="text" placeholder="write me"></label>

在Firefox 4等支持placeholder属性的浏览器中,属性值会以浅灰色的样式显示在输入框中。当页面焦点切换到输入框中,或者输入框中有了值以后,该提示信息就会消失,如图3.1所示。

image


在不支持placeholder的浏览器中运行时,此属性会被忽略,以输入型控件的默认方式显示,如图3.2所示。类似地,在输入值的时候,placeholder文本也不会出现,如图3.3所示。 image
2 . autocomplete
浏览器通过autocomplete属性能够知晓是否应该保存输入值以备将来使用。不保存的代码
如下所示。
<input type="text" name="mr" autocomplete="off" />

autocomplete属性应该用来保护敏感用户数据,避免本地浏览器对它们进行不安全的存储。对于autocomplete属性,可以指定“on”、“off”与“”(不指定)这三种值。不指定时,使用浏览器的默认值(取决于各浏览器的决定)。把该属性设为on时,可以显示指定候补输入的数据列表。使用datalist元素与list属性提供候补输入的数据列表,自动完成时,可以将该datalist元素中的数据作为候补输入的数据在文本框中自动显示。autocomplete属性的使用方法如下所示。

<input type="text" name="mr" autocomplete="on" list="mrs"/>

3 . autofocus
给文本框、选择框或按钮控件加上该属性,当画面打开时,该控件自动获得光标焦点。目前为止要做到这一点,需要使用JavaScript。autofocus属性的使用方法如下所示。

<input type="text" autofocus>

一个页面上只能有一个控件具有该属性。从实际角度来说,请不要滥用该属性。
注意
只有当一个页面是以使用某个控件为主要目的时,才对该控件使用autofocus属性,如搜索页面中的搜索文本框。
4 . list
在HTML 5中,为单行文本框增加了一个list属性,该属性的值为某个datalist元素的id。datalist元素也是HTML 5中新增的元素。该元素类似于选择框(select),但是当用户想要设置的值不在选择列表之内时,允许其自行输入。该元素本身并不显示,而是当文本框获得焦点时以提示输入的方式显示。为了避免在没有支持该元素的浏览器上出现显示错误,可以用CSS等将它设定为不显示。list属性的使用方法如下所示。

<!DOCTYPE html><head>
<meta charset="UTF-8">
<title>list属性示例</title>
</head>
text:<input type="text" name="mr" list="mr">
<!--使用style="display:none;"将datalist元素设定为不显示-->
<datalist id="greetings" style="display: none;">
<option value="明日科技">明日科技</option>
<option value="欢迎你">欢迎你</option>
<option value="你好">你好</option>
</datalist>

这段代码的运行结果如图3.4所示。image
注意
考虑到兼容性,在不支持HTML 5的浏览器中,可以忽略datalist元素,以便正常输入及用脚本编程的方式对input元素执行其他操作。
说明 到目前为止,只有较新版本的Opera浏览器支持list属性。
5 . min和max
通过设置min和max属性,可以将range输入框的数值输入范围限定在最小值和最大值之间。这两个属性既可以只设置一个,也可以两个都设置,当然还可以都不设置,输入型控件会根据设置的参数对值范围做出相应调整。例如,创建一个表示型大小的range控件,值范围为0%~100%,代码如下所示。

<input id="confi dence" name="mr" type="range" min="0" max="100" value="0">

上述代码会创建一个最小值为0、最大值为100的range控件。
说明 默认的min为0,max为100。
6 . step
对于输入型控件,设置其step属性能够制定输入值递增或递减的梯度。例如,按如下方式将表示型大小的range控件的step属性设置为5。

<input id="confi dence" name="mr" type="range" min="0" max="100" step="5" value="0">

设置完成后,控件可接受的输入值只能是初始值与5的倍数之和,也就是说,只能输入0,5,10,…,100。至于是输入框还是滑动条输入,则由浏览器决定。
step属性的默认值取决于控件的类型。对于range控件,step默认值为1。为了配合step属性,HTML 5引入了stepUp和stepDown两个函数对其进行控制。这两个函数的作用分别是根据step属性的值来增加或减少控件的值。如此一来,用户不必输入就能够调整输入型控件的值了,这就给开发人员节省了时间。
7 . required
一旦为某输入型控件设置了required属性,那么此项必填,否则无法提交表单。以文本输入框为例,要将其设置为必填项,按照如下方式添加required属性即可。

<input type="text" id="fi rstname" name="mr" required>

说明 required属性是最简单的一种表单验证方式。
3.1.2 增加与改良的input元素的种类
HTML 5中大幅度地增加与改良了input元素的种类,可以简单地使用这些元素来实现HTML 5之前需要使用JavaScript才能实现的许多功能。
到目前为止,对于这些input元素的种类来说,支持得最多、最全面的是Opera 10浏览器。
对于不支持新增input元素的浏览器来说,统一将这些input元素视为text类型。另外,HTML 5中也没有规定这些元素在各浏览器中的外观形式,所以同样的input元素在不同的浏览器中可能会有不同的外观。下面将详细介绍这些增加与改良的input元素。
1 . email输入类型
email类型的input元素是一种专门用来输入email地址的文本框。提交时,如果该文本框中内容不是email地址格式的文字,则不允许提交,但是它不检查email地址是否存在。和所有的输入类型一样,用户可能提交带有空字段的表单,除非该字段是必填的,即加上required属性。
email类型的文本框具有一个multiple属性,它允许在该文本框中是用逗号隔开的有效email地址的一个列表。当然,这不是要求用户手动输入一个逗号隔开的列表,浏览器可能使用复选框从用户的邮件客户端或手机通讯录中很好地取出用户的联络人的列表。email类型的input元素的使用方法如下所示。

<input type="email" name="email" value="mingrisoft@yahoo.com.cn"/>

email类型的input元素在Opera 10浏览器中的外观如图3.5所示。
image
2 . url输入类型
url类型的input元素是一种专门用来输入url地址的文本框。提交时,如果该文本框中内容不是url地址格式的文字,则不允许提交。例如,Opera显示来自用户的浏览器历史的、最近访问过的url的一个列表,并且自动地在url的“www”开始处之前添加“http://”。url类型的input元素的使用方法如下所示。

<input name="url1" type="url" value="http://www.mingribook.com" />

url类型的input元素在Opera 10浏览器中的外观如图3.6所示。

image


3 . date输入类型
date输入类型是比较受开发者欢迎的一种元素。我们经常看到网页中要求我们输入的各种各样的日期,如生日、购买日期、订票日期等。date类型的input元素以日历的形式方便用户输入。在Opera浏览器中,当该文本框获得焦点时,显示日历,可以在日历中选择日期进行输入。date类型的input元素的使用方法如下所示。
<input name="data1" type="date" value="2011-10-14"/>

date类型的input元素在Opera 10浏览器中的外观如图3.7所示。image

4 . time输入类型
time类型的input元素是一种专门用来输入时间的文本框,并且在提交时会对输入时间的有效性进行检查。它的外观取决于浏览器,可能是简单的文本框,只在提交时检查是否在其中输入了有效的时间,也可以以时钟形式出现,还可以携带时区。time类型的input元素的使用方法如下所示。

<input name="time1" type="time" value="10:00" />

time类型的input元素在Opera 10浏览器中的外观如图3.8所示。image
5 . datetime输入类型
datetime类型的input元素是一种专门用来输入UTC日期和时间的文本框,并且在提交时会对输入的日期和时间进行有效性检查。datetime类型的input元素的使用方法如下所示。

<input name="datetime1" type="datetime" />

datetime类型的input元素在Opera 10浏览器中的外观如图3.9所示。image

相关文章
|
10天前
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
83 24
|
2月前
|
移动开发 HTML5
HTML5 表单属性3
`&lt;input&gt;` 标签的 `formaction`、`formenctype` 和 `formmethod` 属性分别用于指定表单提交的 URL 地址、数据编码类型和提交方法,这些属性可覆盖 `&lt;form&gt;` 标签中的相应属性,并且主要适用于 `type=&quot;submit&quot;` 和 `type=&quot;image&quot;` 的输入类型。
|
1月前
|
移动开发 JavaScript 前端开发
HTML5 表单属性7
`pattern` 属性使用正则表达式验证 `&lt;input&gt;` 元素的值,适用于 `text`, `search`, `url`, `tel`, `email`, 和 `password` 类型。
|
1月前
|
移动开发 UED HTML5
HTML5 表单属性6
`min`、`max` 和 `step` 属性用于限制 `&lt;input&gt;` 标签中的数值或日期范围。例如,可以设置日期选择器的最早和最晚日期,或限制数字输入框的值范围。`multiple` 属性允许在 `&lt;input&gt;` 中选择多个值,适用于邮箱和文件类型。这些属性增强了表单控件的功能性和用户体验。
|
1月前
|
移动开发 HTML5
HTML5 表单属性5
`height` 和 `width` 属性用于 `&lt;input&gt;` 标签中的 `image` 类型,定义图像的高度和宽度。
|
2月前
|
移动开发 HTML5
HTML5 表单属性4
`formnovalidate` 属性是一个布尔属性,用于 `&lt;input&gt;` 元素,指示该输入在表单提交时不需验证,可覆盖 `&lt;form&gt;` 元素的 `novalidate` 属性,常与 `type=&quot;submit&quot;` 一起使用。示例中展示了如何通过两个提交按钮(一个使用验证,另一个不使用)实现不同的表单提交方式。
|
2月前
|
移动开发 JavaScript 前端开发
HTML5 表单属性2
`novalidate` 是 HTML `&lt;form&gt;` 元素的布尔属性,用于禁用浏览器的默认表单验证功能。当此属性存在时,浏览器不会检查表单字段是否符合预设的验证规则,允许开发者通过 JavaScript 等手段自定义验证逻辑。
|
2月前
|
存储 移动开发 数据处理
HTML5 元素2
HTML5引入了多个新元素以增强表单功能和用户体验。`&lt;keygen&gt;`元素用于生成密钥对,提交表单时生成私钥和公钥,私钥保存在客户端,公钥发送至服务器,用于后续的身份验证。`&lt;output&gt;`元素则用于展示计算结果或其他脚本输出,如表单数据处理的结果。此外,`&lt;datalist&gt;`元素可与`&lt;input&gt;`元素结合使用,提供预定义的选项列表,增强输入的便捷性和准确性。这些元素共同提升了网页的交互性和安全性。
|
1月前
|
移动开发 前端开发 JavaScript
HTML5 <nav> 元素2
HTML5中的`&lt;nav&gt;`标签用于定义页面的导航链接部分,但并非所有链接都需置于其中。`&lt;aside&gt;`标签定义页面主内容外的相关信息,如侧边栏。`&lt;header&gt;`标签描述文档或节的头部区域,可用于定义内容的介绍展示区。示例包括导航、家庭旅行记录和IE9发布信息等。
|
1月前
|
移动开发 数据安全/隐私保护 HTML5
HTML5 表单属性8
`required`属性确保表单提交前输入框不能为空,适用于多种类型的 `&lt;input&gt;` 标签,如文本、邮箱、密码等。`step`属性则用于指定输入域中合法数值的间隔,常与`max`和`min`属性配合使用,适用于数字、日期等类型。例如,设置`&lt;input type=&quot;number&quot; step=&quot;3&quot;&gt;`可使输入值以3为单位递增或递减。