HTML学习笔记十三

系列笔记目录

在这里插入图片描述

第一章 HTML的概述
第二章 URL简介
第三章 网页元素的属性
第四章 html字符编码
第五章 网页的语义结构
第六章 文本标签
第七章 列表标签
第八章 图像标签
第九章 链接标签
第十章 多媒体标签
第十一章 iframe
第十二章 [表格标签](https://blog.csdn.net/bigfootyazi/article/details/143367293?spm=1001.2014.3001.5501)
第十三章 表单标签


表单标签

  • 系列笔记目录
  • 前言
  • 一、简介
  • 二、常用标签
    • 2.1 `<form>`
    • 2.2 `<fieldset>`、`<legend>`
    • 2.3 `<label>`
    • 2.4 `<input>`
    • 2.5 `<button>`
    • 2.6 `<select>`
    • 2.7 `<option>`,`<optgroup>`
    • 2.8 `<datalist>`
    • 2.9 `<textarea>`
    • 2.10 `<output>`
    • 2.11 `<progress>`
    • 2.12 `<meter>`


前言

此为读阮一峰先生的《HTML语言教程》所作的个人学习笔记,朋友们如有兴趣可直接跳转链接进行学习。
同时推荐一个学习网站进击的皇虫的书栈网,网站界面友好简洁,IT技术领域的书籍和文档可谓保罗万象,学习这一站足矣。

一、简介

表单(form)是用户输入信息与网页互动的一种形式。大多数情况下,用户提交的信息会发给服务器,比如网站的搜索栏就是表单。
表单由一种或多种的小部件组成,比如输入框、按钮、单选框或复选框。这些小部件称为控件(controls)。

二、常用标签

2.1 <form>

<form>标签用来定义一个表单,所有表单内容放到这个容器元素之中。

<form><!--各种表单控件-->
</form>

上面是表单的基本形式。

下面是一个比较常见的例子。

<form action="https://example.com/api" method="post"><label for="POST-name">用户名:</label><input id="POST-name" type="text" name="user"><input type="submit" value"提交">
</form>

上面代码就是一个表单,一共包含三个控件:一个<label>标签,一个文本输入框,一个提交按钮。其中,文本输入框的name属性是user,表示将向服务器发送一个键名为user的键值对,键值就是这个控件的value属性,等于用户输入的值。

用户在文本输入框里面,输入用户名,比如foobar,然后点击提交按钮,浏览器就会向服务器https://example.com/api发送一个POST请求,发送`user-foobar"这样一段数据。

<form>有以下属性。

  • accept-charset:服务器接受的字符编码列表,使用空格分隔,默认与网页编码相同。
  • action:服务器接受数据的URL
  • autocomplete如果用户没有填写某个控件,浏览器是否可以自动填写该值,它的可能取值分别为 off(不自动填写)和on(自动填写)。
  • method:提交数据的HTTP方法,可能的值有post(表单数据作为HTTP数据体发送),get(表单数据作为URL的查询字符串发送),dialog(表单位于<dialog>内部使用)。
  • enctype:当method属性等于post时,该属性指定提交给服务器的MIME类型。可能的值为application/x-www-form-urlencoded(默认值),multipart/form-data(文件上传的情况),text/plain
    name:表单的名称,应该在网页中是唯一的。注意,如果一个控件没有设置name属性,那么这个控件的值就不会作为键值对,向服务器发送。
  • novalidate:布尔属性,表单提交时是否取消验证。
  • target:在哪个窗口展示服务器返回的数据,可能的值有_self(当前窗口),_blank(新建窗口),_parent(父窗口),_top(顶层窗口),<iframe>标签的name属性(即表单返回结果展示在<iframe>窗口)。

enctype属性

(1)application/x-www-form-urlencoded是默认属性,控价名和控件值都要转义(空格转为+号,非数字和非字母转为%HH的形式,换行转为CR LF),控件名和控件值之间用=分隔。控件按照出现顺序排列,控件之间用&分隔。

(2)multipart/form-data主要用于文件上传。这个类型上传大文件时,会将文件分成多块传送,每一块的HTTP头信息都有Content-Disposition属性,值为form-data,以及一个name属性,值为控件名。

Content-Disposition:form-data; name="mycontrol"

下面是上传文件的表单。

<form action="https://example.com/api"enctype="multipart/form-data"method="post">用户名:<input type="text" name="files"><br>文件:<input type="file" name="files"><br><input type="submit" value="上传"><input type="reset" value="清除>
</form>

上面代码中,输入用户名Larry,选中一个file1.txt文件,然后点击“上传”。浏览器发送的实际数据如下。

Content-Type: multipart/form-data; boundary=--AaB03x
--AaB03x
Content-Disposition: form-data; name="submit-name"
Larry
--AaB03x
Content-Disposition: form-data; name="files"; filename="file1.txt"
Content-Type: text/plain
... contents of file1.txt ...
--AaB03x--

上面代码中,浏览器将这个表单发成多个数据块。最上面使用Content-Type字段告诉服务器,数据格式是multipart/form-data(即多个数据块),每个数据块的分隔标志是--AaB03x。每个数据块的第一行是Content-Disposition,其中的name字段表示这个数据块的控件名,数据体则是该控件的数据值,比如第一个数据块的name属性是submit-name控件,数据体是该控件的值Larry。第二个数据块是控件files,由于该控件是上传文件,所以还要用filename属性给出文件名file1.txt,数据体是file1.txt的内容。

2.2 <fieldset><legend>

<fieldset>标签是一个块级容器标签,表示控件的集合,用于将一组相关控件组合成一组。

<form><fieldset><p>年龄:<input  type="text" name="age"></p><p>性别:<input type="text" name="gender"></p></fieldset>
</form>

上面代码中,两个输入框是一组,它们的外面会显示一个方框。

  • <fieldset>有以下属性。
  • disabled:布尔属性,一旦设置会使得<fieldset>内部包含的控件都不可用,都变成灰色状态。
  • form:指定控件组所属的<form>,它的值等于<form>id属性。
  • name:该控件组的名称。

<legend>标签用来设置<fieldset>控件组的标题,通常是<fieldset>内部的第一个元素,会嵌入显示在控件组的上边框里面。

<fieldset><legend>学生情况登记</legend><p>年龄:<input type="text" name="age"></p><p>性别:<input type="text" name="gender></p>
</fieldset>

2.3 <label>

<label>标签是一个行内元素,提供控件的文字说明,帮助用户理解控件的目的。

<label for="user">用户名:</label>
<input type="text" name="user" id="user">

上面代码中,输入框前面会有文字说明“用户名:”。

<label>的一大优势是增加了控件的可用性。有些控件比较小(比如单选框),不容易点击,那么点击对应的<label>标签,也能选中该控件。

<label>for属性关联相对应的控件,它的值是对应控件的id属性。所以,控件最好设置id属性。

控件也可以放在<label>之中,这时不需要for属性和id属性。

<label>用户名:<input type="text" name="user">
</label>

<label>的属性如下:

  • for:关联控件的id属性。
  • form:关联表单的id属性。设置了该属性后,<label>可以放置在页面的任何位置,否则只能放在<form>内部。

一个控件可以有多个关联的<label>标签。

<label for="username">用户名:</label>
<input type="text" id="username" name="username">
<label for="username"><abbr title="required">*</abbr></label>

上面代码中,<input>有两个关联的<label>

2.4 <input>

<input>标签是一个行内元素,用来接受用户的输入。它是一个单独使用的标签,没有结束标志。

它有多种类型,取决于type属性的值,默认值是text,表示一个输入框。

<input>
<!--等用于-->
<input type="text">

上面代码会生成一个单行的输入框,用户可以在里面输入文本。

<input>的属性非常多,有些属性是某个类型专用的,放在下文的“类型”部分介绍。这里介绍一些所有类型的共同属性。

autofocus:布尔属性,是否在页面加载时自动获得焦点。
disabled:布尔属性,是否禁用该控件。一旦设置,该控件将变灰,用户可以看到,但是无法操作。
form:关联表单的id属性。设置了该属性后,控件可以放置在页面的任何位置,否则只能放在内部。
list:关联的<datalist>id属性,设置该控件相关的数据列表,详见后文。
name:控件的名称,主要用于向服务器提交数据时,控件键值对的键名。注意,只有设置了name属性的控件,才会向服务器提交,不设置就不会提交。
readonly:布尔属性,是否为只读。
required:布尔属性,是否为必填。
type:控件类型,详见下文。
value:控件的值。

类型

type属性决定了<input>的形式。该属性可以取以下值。

(1)text
type="text"是普通的文本输入框,用来输入单行文本。如果用户输入换行符,换行符会自动从输入中删除。

<input type="text" id="name" name="name" requiredminlength="4" maxlength="8" size="10">

text输入框有以下配套属性。

maxlength:可以输入的最大字符数,值为一个非负整数。
minlength:可以输入的最小字符数,值为一个非负整数,且必须小于maxlength。
pattern:用户输入必须匹配的正则表达式,比如要求用户输入4个~8个英文字符,可以写成pattern="[a-z]{4,8}"。如果用户输入不符合要求,浏览器会弹出提示,不会提交表单。
placeholder:输入字段为空时,用于提示的示例值。只要用户没有任何字符,该提示就会出现,否则会消失。
readonly:布尔属性,表示该输入框是只读的,用户只能看,不能输入。
size:表示输入框的显示长度有多少个字符宽,它的值是一个正整数,默认等于20。超过这个数字的字符,必须移动光标才能看到。
spellcheck:是否对用户输入启用拼写检查,可能的值为true或false。

(2)search

type="search"是一个用于搜索的文本输入框,基本等同于type="text"。某些浏览器会在输入的时候,在输入框的尾部显示一个删除按钮,点击就会删除所有输入,让用户从头开始输入。

下面是一个例子。

<form><input type="search" id="mySearch" name="q"placeholder="输入搜索词……" required><input type="submit" value="搜索">
</form>

(3)button

type="button"是没有默认行为的按钮,通常脚本指定click事件的监听函数来使用。

<input type="button" value="点击">

建议尽量不使用这个类型,而使用<button>标签代替,一则语义更清晰,二则<button>标签内部可以插入图片或其他 HTML 代码。

(4)submit

type="submit"是表单的提交按钮。用户点击这个按钮,就会把表单提交给服务器。

<input type="submit" value="提交">

如果不指定value属性,浏览器会在提交按钮上显示默认的文字,通常是Submit

该类型有以下配套属性,用来覆盖<form>标签的相应设置。

  • formaction:提交表单数据的服务器 URL。
  • formenctype:表单数据的编码类型。
  • formmethod:提交表单使用的 HTTP 方法(get或post)。
  • formnovalidate:一个布尔值,表示数据提交给服务器之前,是否要忽略表单验证。
  • formtarget:收到服务器返回的数据后,在哪一个窗口显示。

(5)image

type="image"表示将一个图像文件作为提交按钮,行为和用法与type="submit"完全一致。

<input type="image" alt="登陆" src="login-button.png">

上面代码中,图像文件是一个可以点击的按钮,点击后会提交数据到服务器。

该类型有以下配套属性。

  • alt:图像无法加载时显示的替代字符串。
  • src:加载的图像 URL。
  • height:图像的显示高度,单位为像素。
  • width:图像的显示宽度,单位为像素。
  • formaction:提交表单数据的服务器 URL。
  • formenctype:表单数据的编码类型。
  • formmethod:提交表单使用的 HTTP 方法(get或post)。
  • formnovalidate:一个布尔值,表示数据提交给服务器之前,是否要忽略表单验证。
  • formtarget:收到服务器返回的数据后,在哪一个窗口显示。

用户点击图像按钮提交时,会额外提交两个参数x和y到服务器,表示鼠标的点击位置,比如x=52&y=55x是横坐标,y是纵坐标,都以图像左上角作为原点(0, 0)。如果图像按钮设置了name属性,比如name="position",那么将以该值作为坐标的前缀,比如position.x=52&position.y=55。这个功能通常用来地图类型的操作,让服务器知道用户点击了地图的哪个部分。

(6)reset

type="reset"是一个重置按钮,用户点击以后,所有表格控件重置为初始值。

<input type="reset" value="重置">

如果不设置value属性,浏览器会在按钮上面加上默认文字,通常是Reset

这个控件用处不大,用户点错了还会使得所有已经输入的值都被重置,建议不要使用。

(7)checkbox

type="checkbox"是复选框,允许选择或取消选择该选项。

<input type="checkbox" id="agreement" name="agreement" checked>
<label for="agreement">是否同意</label>

上面代码会在文字前面,显示一个可以点击的选择框,点击可以选中,再次点击可以取消。上面代码中,checked属性表示默认选中。

value属性的默认值是on。也就是说,如果没有设置value属性,以上例来说,选中复选框时,会提交agreement=on。如果没有选中,提交时不会有该项。

多个相关的复选框,可以放在<fieldset>里面。

<fieldset><legend>你的兴趣</legend><div><input type="checkbox" id="coding" name="interest" value="coding"><label for="coding">编码</label></div><div><input type="checkbox" id="music" name="interest" value="music"><label for="music">音乐</label></div>
</fieldset>

上面代码中,如果用户同时选中两个复选框,提交的时候就会有两个name属性,比如interest=coding&interest=music

(8)radio

type="radio"是单选框,表示一组选择之中,只能选中一项。单选框通常为一个小圆圈,选中时会被填充或突出显示。

<fieldset><legend>性别</legend><div><input type="radio" id="male" name="gender" value="male"><label for="male"></label></div><div><input type="radio" id="female" name="gender" value="female"><label for="female"></label></div>
</fieldset>

上面代码中,性别只能在两个选项之中,选择一项。

注意,多个单选框的name属性的值,应该都是一致的。提交到服务器的就是选中的那个值。

该类型的配套属性如下。

  • checked:布尔属性,表示是否默认选中当前项。
  • value:用户选中该项时,提交到服务器的值,默认为on

(9)email

type="email"是一个只能输入电子邮箱的文本输入框。表单提交之前,浏览器会自动验证是否符合电子邮箱的格式,如果不符合就会显示提示,无法提交到服务器。

<input type="email" pattern=".+@foobar.com" size="30" required>

上面代码会生成一个必填的文本框,只能输入后缀为foobar.com的邮箱地址。

该类型有一个multiple的布尔属性,一旦设置,就表示该输入框可以输入多个逗号分隔的电子邮箱。

<input id="emailAddress" type="email" multiple required>

注意,如果同时设置了multiple属性和required属性,零个电子邮箱是允许的,也就是该输入框允许为空。

该类型的配套属性如下。

  • maxlength:可以输入的最大字符数。
  • minlength:可以输入的最少字符数。
  • multiple:布尔属性,是否允许输入多个以逗号分隔的电子邮箱。
  • pattern:输入必须匹配的正则表达式。
  • placeholder:输入为空时的显示文本。
  • readonly:布尔属性,该输入框是否只读。
  • size:一个非负整数,表示输入框的显示长度为多少个字符。
  • spellcheck:是否对输入内容启用拼写检查,可能的值为true或false。
    该类型还可以搭配<datalist>标签,提供输入的备选项。
<input type="email" size="40" list="defaultEmails">
<datalist id="defaultEmails"><option value="jbond007@mi6.defence.gov.uk"><option value="jbourne@unknown.net"><option value="nfury@shield.org"><option value="tony@starkindustries.com"><option value="hulk@grrrrrrrr.arg">
</datalist>

上面代码中,输入焦点进入输入框以后,会显示一个下拉列表,里面有五个参考项,供用户参考。

(10)password

type="password"是一个密码输入框。用户的输入会被遮挡,字符通常显示星号(*)或点(·)

<input type="password" id="pass" name="password"minlength="8" required>

浏览器对该类型输入框的显示,会有所差异。一种常见的处理方法是,用户每输入一个字符,先在输入框里面显示一秒钟,然后再遮挡该字符。

如果用户输入内容包含换行符(U+000A)和回车符(U+000D),浏览器会自动将这两个字符过滤掉。

该类型的配套属性如下。

  • maxlength:可以输入的最大字符数。
  • minlength:可以输入的最少字符数。
  • pattern:输入必须匹配的正则表达式。
  • placeholder:输入为空时的显示文本。
  • readonly:布尔属性,该输入框是否只读。
  • size:一个非负整数,表示输入框的显示长度为多少个字符。
  • autocomplete:是否允许自动填充,可能的值有on(允许自动填充)、off(不允许自动填充)、current-password(填入当前网站保存的密码)、new-password(自动生成一个随机密码)。
  • inputmode:允许用户输入的数据类型,可能的值有none(不使用系统输入法)、text(标准文本输入)、decimal(数字,包含小数)、numeric(数字0-9)等。

(11)file

type="file"是一个文件选择框,允许用户选择一个或多个文件,常用于文件上传功能。

<input type="file"id="avatar" name="avatar"accept="image/png, image/jpeg">

该类型有以下属性。

  • accept:允许选择的文件类型,使用逗号分隔,可以使用 MIME 类型(比如image/jpeg),也可以使用后缀名(比如.doc),还可以使用audio/*(任何音频文件)、video/*(任何视频文件)、image/*(任何图像文件)等表示法。
  • capture:用于捕获图像或视频数据的源,可能的值有user(面向用户的摄像头或麦克风),environment(外接的摄像头或麦克风)。
  • multiple:布尔属性,是否允许用户选择多个文件。

(12)hidden

type="hidden"是一个不显示在页面的控件,用户无法输入它的值,主要用来向服务器传递一些隐藏信息。比如,CSRF 攻击会伪造表单数据,那么使用这个控件,可以为每个表单生成一个独一无二的隐藏编号,防止伪造表单提交。

<input id="prodId" name="prodId" type="hidden" value="xm234jq">

上面这个控件,页面上是看不见的。用户提交表单的时候,浏览器会将prodId=xm234jq发给服务器。

(13)number

type="number"是一个数字输入框,只能输入数字。浏览器通常会在输入框的最右侧,显示一个可以点击的上下箭头,点击向上箭头,数字会递增,点击向下箭头,数字会递减。

<input type="number" id="tentacles" name="tentacles"min="10" max="100">

上面代码指定数字输入框,最小可以输入10,最大可以输入100

该类型可以接受任何数值,包括小数和整数。可以通过step属性,限定只接受整数。

该类型有以下配套属性。

  • max:允许输入的最大数值。
  • min:允许输入的最小数值。
  • placeholder:用户输入为空时,显示的示例值。
  • readonly:布尔属性,表示该控件是否为只读。
  • step:点击向上和向下箭头时,数值每次递减的步长值。如果用户输入的值,不符合步长值的设定,浏览器会自动四舍五入到最近似的值。默认的步长值是1,如果初始的value属性设为1.5,那么点击向上箭头得到2.5,点击向下箭头得到0.5

(14)range

type="range"是一个滑块,用户拖动滑块,选择给定范围之中的一个数值。因为拖动产生的值是不精确的,如果需要精确数值,不建议使用这个控件。常见的例子是调节音量。

<input type="range" id="start" name="volume"min="0" max="11">

上面代码会产生一个最小值为0、最大值为11的滑块区域。用户拖动滑块,选择想要的音量。

该类型的配套属性如下,用法与type="number"一致。

  • max:允许的最大值,默认为100
  • min:允许的最小值,默认为0
  • step:步长值,默认为1

value属性的初始值就是滑块的默认位置。如果没有设置value属性,滑块默认就会停在最大值和最小值中间。如果max属性、min属性、value属性都没有设置,那么value属性为50

该类型与<datalist>标签配合使用,可以在滑动区域产生刻度。

<input type="range" list="tickmarks">
<datalist id="tickmarks"><option value="0" label="0%"><option value="10"><option value="20"><option value="30"><option value="40"><option value="50" label="50%"><option value="60"><option value="70"><option value="80"><option value="90"><option value="100" label="100%">
</datalist>

上面代码会在0~100之间产生11个刻度。其中,0%50%100%三个位置会有文字提示,不过浏览器很可能不支持。

注意,浏览器生成的都是水平滑块。如果想要生成垂直滑块,可以使用 CSS 改变滑块区域的方向。

(15)url

type="url"是一个只能输入网址的文本框。提交表单之前,浏览器会自动检查网址格式是否正确,如果不正确,就会无法提交。

<input type="url" name="url" id="url"placeholder="https://example.com"pattern="https://.*" size="30"required>

上面代码的pattern属性指定输入的网址只能使用 HTTPS 协议。

注意,该类型规定,不带有协议的网址是无效的,比如foo.com是无效的,http://foo.com是有效的。

该类型的配套属性如下。

  • maxlength:允许的最大字符数。
  • minlength:允许的最少字符串。
  • pattern:输入内容必须匹配的正则表达式。
  • placeholder:输入为空时显示的示例文本。
  • readonly:布尔属性,表示该控件的内容是否只读。
  • size:一个非负整数,表示该输入框显示宽度为多少个字符。
  • spellcheck:是否启动拼写检查,可能的值为true(启用)和false(不启用)。

该类型与<datalist>标签搭配使用,可以形成下拉列表供用户选择。随着用户不断键入,会缩小显示范围,只显示匹配的备选项。

<input id="myURL" name="myURL" type="url"list="defaultURLs">
<datalist id="defaultURLs"><option value="https://developer.mozilla.org/" label="MDN Web Docs"><option value="http://www.google.com/" label="Google"><option value="http://www.microsoft.com/" label="Microsoft"><option value="https://www.mozilla.org/" label="Mozilla"><option value="http://w3.org/" label="W3C">
</datalist>

上面代码中,<option>label属性表示文本标签,显示在备选下拉框的右侧,网址显示在左侧。

(16)tel

type="tel"是一个只能输入电话号码的输入框。由于全世界的电话号码格式都不相同,因此浏览器没有默认的验证模式,大多数时候需要自定义验证。

<input type="tel" id="phone" name="phone"pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}"required>
<small>Format: 123-456-7890</small>

上面代码定义了一个只能输入10位电话号码的输入框。

该类型的配套属性如下。

  • maxlength:允许的最大字符数。
  • minlength:允许的最少字符串。
  • pattern:输入内容必须匹配的正则表达式。
  • placeholder:输入为空时显示的示例文本。
  • readonly:布尔属性,表示该控件的内容是否只读。
  • size:一个非负整数,表示该输入框显示宽度为多少个字符。

(17)color

type="color"是一个选择颜色的控件,它的值一律都是#rrggbb格式。

<input type="color" id="background" name="background"value="#e66465">

上面代码在 Chrome 浏览器中,会显示一个#e66465的色块。点击色块,就会出现一个拾色器,供用户选择颜色。

如果没有指定value属性的初始值,默认值为#000000(黑色)

(18)date

type="date"是一个只能输入日期的输入框,用户可以输入年月日,但是不能输入时分秒。输入格式是YYYY-MM-DD

<input type="date" id="start" name="start"value="2018-07-22"min="2018-01-01" max="2018-12-31">

上面代码会显示一个输入框,默认日期是2018年7月22日。用户点击以后,会日期选择器,供用户选择新的日期。

该类型有以下配套属性。

  • max:可以允许的最晚日期,格式为yyyy-MM-dd
  • min:可以允许的最早日期,格式为yyyy-MM-dd
  • step:步长值,一个数字,以天为单位。

(19)time

type="time"是一个只能输入时间的输入框,可以输入时分秒,不能输入年月日。日期格式是24小时制的hh:mm,如果包括秒数,格式则是hh:mm:ss。日期选择器的形式则随浏览器不同而不同。

<input type="time" id="appt" name="appt"min="9:00" max="18:00" required>
<small>营业时间上午9点到下午6点</small>

该类型有以下配套属性。

  • max:允许的最晚时间。
  • min:允许的最早时间。
  • readonly:布尔属性,表示用户是否不可以编辑时间。
  • step:步长值,单位为秒。
<input id="appt" type="time" name="appt" step="2">

上面代码中,调节控件的话,时间每次改变的幅度是2秒钟。

(20)month

type="month"是一个只能输入年份和月份的输入框,格式为YYYY-MM

<input type="month" id="start" name="start"min="2018-03" value="2018-05">

该类型有以下配套属性。

  • max:允许的最晚时间,格式为yyyy-MM
  • min:允许的最早时间,格式为yyyy-MM
  • readonly:布尔属性,表示用户是否不可以编辑时间。
  • step:步长值,单位为月。

(21)week

type="week"是一个输入一年中第几周的输入框。格式为yyyy-Www,比如2018-W18表示2018年第18周。

<input type="week" name="week" id="camp-week"min="2018-W18" max="2018-W26" required>

该类型有以下配套属性。

  • max:允许的最晚时间,格式为yyyy-Www
  • min:允许的最早时间,格式为yyyy-Www
  • readonly:布尔属性,表示用户是否不可以编辑时间。
  • step:步长值,单位为周。

(22)datetime-local

type="datetime-local"是一个时间输入框,让用户输入年月日和时分,格式为yyyy-MM-ddThh:mm。注意,该控件不支持秒。

<input type="datetime-local" id="meeting-time"name="meeting-time" value="2018-06-12T19:30"min="2018-06-07T00:00" max="2018-06-14T00:00">

该类型有以下配套属性。

  • max:允许的最晚时间,格式为yyyy-MM-ddThh:mm
  • min:允许的最早时间,格式为yyyy-MM-ddThh:mm
  • step:步长值,单位为秒,默认值是60

2.5 <button>

<button>标签会生成一个可以点击的按钮,没有默认行为,通常需要用type属性或脚本指定按钮的功能。

<button>点击</button>

上面代码会产生一个按钮,上面的文字就是“点击”。
<button>内部不仅放置文字,还可以放置图像,这可以形成图像按钮。

<button name="search" type="submit"><img src="search.gif>搜索
</button>

<button>具有以下属性。

  • autofocus:布尔属性,表示网页加载时,焦点就在这个按钮。网页里面只能有一个元素,具有这个属性。
  • disabled:布尔属性,表示按钮不可用,会导致按钮变灰,不可点击。
  • name:按钮的名称(与value属性配合使用),将以name=value的形式,随表单一起提交到服务器。
  • value:按钮的值(与name属性配合使用),将以name=value的形式,随表单一起提交到服务器。
  • type:按钮的类型,可能的值有三种:submit(点击后将数据提交给服务器),reset(将所有控件的值重置为初始值),button(没有默认行为,由脚本指定按钮的行为)。
  • form:指定按钮关联的<form>表单,值为<form>id属性。如果省略该属性,默认关联按钮所在父表单。
  • formaction:数据提交到服务器的目标 URL,会覆盖<form>元素的action属性。
  • formenctype:数据提交到服务器的编码方式,会覆盖<form>元素的enctype属性。可能的值有三种:application/x-www-form-urlencoded(默认值),multipart/form-data(只用于文件上传),text/plain
  • formmethod:数据提交到服务器使用的 HTTP 方法,会覆盖<form>元素的method属性,可能的值为postget
  • formnovalidate:布尔属性,数据提交到服务器时关闭本地验证,会覆盖<form>元素的novalidate属性。
  • formtarget:数据提交到服务器后,展示服务器返回数据的窗口,会覆盖<form>元素的target属性。可能的值有_self(当前窗口),_blank(新的空窗口)、_parent(父窗口)、_top(顶层窗口)。

2.6 <select>

<select>标签用于生成一个下拉菜单。

<label for="pet-select">宠物:</label>
<select id="pet-select" name="pet-select"><option value="">--请选择一项--</option><option value="dog"></option><option value="cat"></option><option value="others">其他</option>
</select>

上面代码中,<select>生成一个下拉菜单,菜单标题是“—请选择一项—”,最右侧有一个下拉箭头。点击下拉箭头,会显示三个菜单项,供用户点击选择。

下拉菜单的菜单项由<option>标签给出,每个<option>代表可以选择的一个值。选中的<option>value属性,就是<select>控件发送的服务器的值。

有一个布尔属性`selected`,一旦设置,就表示该项是默认选中的菜单项。
<select name="choice"><option value="first">First Value</option><option value="second" selected>Second Value</option><option value="third">Third Value</option>
</select>

上面代码中,第二项Second Value是默认选中的。页面加载的时候,会直接显示在下拉菜单上。

<select>有如下属性。

  • autofocus:布尔属性,页面加载时是否自动获得焦点。
  • disabled:布尔属性,是否禁用当前控件。
  • form:关联表单的id属性。
  • multiple:布尔属性,是否可以选择多个菜单项。默认情况下,只能选择一项。一旦设置,多数浏览器会显示一个滚动列表框。用户可能需要按住Shift或其他功能键,选中多项。
  • name:控件名。
  • required:布尔属性,是否为必填控件。
  • size:设置了multiple属性时,页面显示时一次可见的行数,其他行需要滚动查看。

2.7 <option><optgroup>

<option>标签用在<select><optgroup><datalist>里面,表示一个菜单项,参见<select>的示例。

它有如下属性。

  • disabled:布尔属性,是否禁用该项。
  • label:该项的说明。如果省略,则等于该项的文本内容。
  • selected:布尔属性,是否为默认值。显然,一组菜单中,只能有一个菜单项设置该属性。
  • value:该项提交到服务器的值。如果省略,则等于该项的文本内容。
  • <optgroup>表示菜单项的分组,通常用在<select>内部。
<label>宠物:<select name="pets" multiple size="4"><optgroup label="四条腿的宠物"><option value="dog"></option><option value="cat"></option></optgroup><optgroup label="鸟类"><option value="parrot">鹦鹉</option><option value="thrush">画眉</option></optgroup></select>
</label>

上面代码中,<select>是一个下拉菜单,它的内部使用<optgroup>将菜单项分成两组。每组有自己的标题,会加粗显示,但是用户无法选中。

它的属性如下。

  • disabled:布尔设置,是否禁用该组。一旦设置,该组所有的菜单项都不可选。
  • label:菜单项的标题。

2.8 <datalist>

<datalist>标签是一个容器标签,用于为指定控件提供一组相关数据,通常用于生成输入提示。它的内部使用<option>,生成每个菜单项。

<label for="ice-cream-choice">冰淇淋:</label>
<input type="text" list="ice-cream-flavors" id="ice-cream-choice" name="ice-cream-choice">
<datalist id="ice-cream-flavors"><option value="巧克力"><option value="椰子"><option value="薄荷"><option value="草莓"><option value="香草">
</datalist>

上面代码中,<input>生成一个文本输入框,用户可以输入文本。<input>list属性指定关联的<datalist>id属性。<datalist>的数据列表用于输入建议,用户点击输入框的时候,会显示一个下拉菜单,里面是建议的输入项。并且还会自动匹配用户已经输入的字符,缩小可选的范围,比如用户输入“香”,则只会显示“香草”这一项。

注意,<option>在这里可以不需要闭合标签。

<option>标签还可以加入label属性,作为说明文字。Chrome 浏览器会将其显示在value的下一行。

<datalist id="ide"><option value="Brackets" label="by Adobe"><option value="Coda" label="by Panic">
</datalist>

上面代码的渲染结果是,Chrome 浏览器会在下拉列表显示value值(比如Brackets),然后在其下方以小字显示label值(比如by Adobe)。

2.9 <textarea>

<textarea>是一个块级元素,用来生成多行的文本框。

<textarea id="story" name="story"rows="5" cols="33">
这是一个很长的故事。
</textarea>

上面代码会生成一个长度为5行,宽度为33个字符的文本框。

该标签有如下属性。

  • autofocus:布尔属性,是否自动获得焦点。
  • cols:文本框的宽度,单位为字符,默认值为20。
  • disabled:布尔属性,是否禁用该控件。
  • form:关联表单的id属性。
  • maxlength:允许输入的最大字符数。如果未指定此值,用户可以输入无限数量的字符。
  • minlength:允许输入的最小字符数。
  • name:控件的名称。
  • placeholder:输入为空时显示的提示文本。
  • readonly:布尔属性,控件是否为只读。
  • required:布尔属性,控件是否为必填。
  • rows:文本框的高度,单位为行。
  • spellcheck:是否打开浏览器的拼写检查。可能的值有true(打开),default(由父元素或网页设置决定),false(关闭)。
  • wrap:输入的文本是否自动换行。可能的值有hard(浏览器自动插入换行符CR + LF,使得每行不超过控件的宽度),soft(输入内容超过宽度时自动换行,但不会加入新的换行符,并且浏览器保证所有换行符都是CR + LR,这是默认值),off(关闭自动换行,单行长度超过宽度时,会出现水平滚动条)。

2.10 <output>

<output>标签是一个行内元素,用于显示用户操作的结果。

<input type="number" name="a" value="10"> +
<input type="number" name="b" value="10"> =
<output name="result">20</output>

该标签有如下属性。

  • for:关联控件的id属性,表示为该控件的操作结果。
  • form:关联表单的id属性。
  • name:控件的名称。

2.11 <progress>

<progress>标签是一个行内元素,表示任务的完成进度。浏览器通常会将显示为进度条。

<progress id="file" max="100" value="70"> 70% </progress>

该标签有如下属性。

  • max:进度条的最大值,应该是一个大于0的浮点数。默认值为1
  • value:进度条的当前值。它必须是0max属性之间的一个有效浮点数。如果省略了max属性,该值则必须在01之间。如果省略了value属性,则进度条会出现滚动,表明正在进行中,无法知道完成的进度。

2.12 <meter>

<meter>标签是一个行内元素,表示指示器,用来显示已知范围内的一个值,很适合用于任务的当前进度、磁盘已用空间、充电量等带有比例性质的场合。浏览器通常会将其显示为一个不会滚动的指示条。

<p>烤箱的当前温度是<meter min="200" max="500"value="350"> 350 度</meter></p>

上面代码会显示一个指示条,左侧表示200,右侧表示500,当前位置停留在350

注意,<meter>元素的子元素,正常情况下不会显示。只有在浏览器不支持<meter>时才会显示。

该标签有如下属性。

min:范围的下限,必须小于max属性。如果省略,则默认为0
max:范围的上限,必须大于min属性。如果省略,则默认为1
value:当前值,必须在min属性和max属性之间。如果省略,则默认为0
low:表示“低端”的上限门槛值,必须大于min属性,小于high属性和max属性。如果省略,则等于min属性。
high:表示“高端”的下限门槛值,必须小于max属性,大于low属性和min属性。如果省略,则等于max属性。
optimum:指定最佳值,必须在min属性和max属性之间。它应该与low属性和high属性一起使用,表示最佳范围。如果optimum小于low属性,则表示“低端”是最佳范围;如果大于high属性,则表示“高端”是最佳范围;如果在lowhigh之间,则表示“中间地带”是最佳范围。如果省略,则等于minmax的中间值。
form:关联表单的id属性。
Chrome 浏览器使用三种颜色,表示指示条所处的位置。较好情况时,当前位置为绿色;一般情况时,当前位置为黄色;较差情况时,当前位置为红色。

<meter id="fuel" name="fuel"min="0" max="100"low="33" high="66" optimum="80"value="50">at 50/100
</meter>

上面代码中,指示条可以分成三段:0 ~ 3233 ~ 6566 ~ 100。由于optimum属性是80,因此66 ~ 100是较好情况,33 ~ 65是一般情况,0 ~ 32是较差情况。浏览器因此会根据value属性,将当前位置显示为不同颜色,小于33时显示红色,大于65时显示绿色,两者之间显示黄色。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/5140.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

使用NVM自由切换nodejs版本

一、NVM介绍 在日常开发中&#xff0c;我们可能需要同时进行多个不同NodeJS版本的项目开发&#xff0c;每个项目所依赖的nodejs版本可能不一致&#xff0c;我们如果只安装一个版本的nodejs&#xff0c;就可能出现node版本冲突问题&#xff0c;导致项目无法启动。这种情况下&am…

我懵了,docker容器访问不了外部网络

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 我懵了&#xff0c;docker容器访问不了外部网络 前戏docker中的bridge网络详解解决加餐 前戏 事…

rocketMq学习

RocketMq学习 首先需要了解一下Rocketmq。与市面上常见的消息中间件的区别 工作原理图&#xff1a; 从这张图我们可以看到&#xff0c;rocketmq几个关键的指标 producer、NameServer、broker、consumer windows下安装RocketMq 并使用图形化界面进行管理 1、RocketMq官网下…

Java类和对象(下篇)

今天接着学习类和对象(苦笑)(苦笑)(苦笑) 1. 封装 1.1 封装的概念 面向对象程序三大特性&#xff1a;封装、继承、多态。 而类和对象阶段&#xff0c;主要研究的就是封装特性。 何为封装呢&#xff1f;简单来说就是套壳屏蔽细节。 举例&#xff1a;对于计算机使用者而言&am…

Docker在CentOS上的安装与配置

前言 随着云计算和微服务架构的兴起&#xff0c;Docker作为一种轻量级的容器技术&#xff0c;已经成为现代软件开发和运维中的重要工具。本文旨在为初学者提供一份详尽的指南&#xff0c;帮助他们在CentOS系统上安装和配置Docker及相关组件&#xff0c;如Docker Compose和私有…

视频智能分析平台LiteAIServer入侵检测算法平台部署行人入侵检测算法:智能安防的新利器

在当今数字化时代&#xff0c;安全防护成为了社会各界高度关注的重要议题。随着人工智能技术的不断发展&#xff0c;视频智能分析平台LiteAIServer 行人入侵检测算法应运而生&#xff0c;为安防领域带来了全新的突破与变革。 视频智能分析平台LiteAIServer 行人入侵检测算法是基…

Java AOT 快速入门

1、编译类型介绍 AOT: Ahead-of-time (提前编译)&#xff1a;程序执行前&#xff0c;全部被编译成机器码 JIT&#xff1a;Just in time&#xff08;即时编译&#xff09;&#xff1a;程序边编译&#xff0c;边运行。 编译&#xff1a;源代码->.class文件->机器码 2、A…

思维导图工具有哪些?10款思维导图特色介绍

电脑的普及&#xff0c;互联网的便捷。使我们平时工作、学习等场景下&#xff0c;常常离不开思维导图的辅助。思维导图是可以让我们所需要介绍的知识点以图文形式结合&#xff0c;展示出来。帮助我们方便理解。因此&#xff0c;一款好的思维导图工具&#xff0c;能让我们制作的…

夸克获评多个AI产品奖项 升级“AI搜题”让用户解新题、难题更高效

日前&#xff0c;在“第9届榜样教育年度盛典”上&#xff0c;夸克“AI搜题” 凭借在AI产品创新以及“灵知”学习大模型上的卓越表现&#xff0c;荣获“2024技术突破教育产品”奖。夸克持续加码在学习产品和技术上的投入&#xff0c;将助力用户进一步提升学习能力与效率。 从去年…

自动化测试中使用Pytest Fixture?推荐10种常见用法!

Pytest 是一个功能强大的 Python 测试框架&#xff0c;其中的Fixture 是 Pytest 中的一个重要功能。它允许你设置一些特定的测试环境或准备测试数据&#xff0c;这些环境和数据可以在多个测试用例中重复使用。通过使用fixture&#xff0c;你可以避免在每个测试函数中编写重复的…

Java 调用淘宝 API 获取商品页面数据示例

在 Java 开发中&#xff0c;我们同样可以调用淘宝 API 来获取商品页面数据。以下是一个用 Java 实现的示例。 一、准备工作 1.引入相关依赖&#xff0c;这里我们使用 Apache HttpClient 来发送 HTTP 请求。可以在项目的 pom.xml 文件中添加以下依赖&#xff1a; <dependenc…

【网络】数据链路层

目录 以太网 以太网的帧格式 MSS 交换机 MTU对UDP的影响 ARP协议 数据链路层是软件层的最底层协议&#xff0c;它的下面就是物理层&#xff0c;那么下面我们就来介绍一下它负责在网络通信中完成什么工作 我们前面说的IP协议是解决如何进行跨网络转发的&#xff0c;也就是…

三维测量与建模笔记 - 3.2 直接线性变换法标定DLT

DLT - Direct Linear Transform 上图中&#xff0c;透视成像对应的公式是共线方程&#xff0c;可以参考以下链接&#xff1a; https://zhuanlan.zhihu.com/p/101549821https://zhuanlan.zhihu.com/p/101549821 对于标定来说&#xff0c;需要找到。已知量是。 (u,v)是…

语音识别中的RPM技术:原理、应用与发展趋势

目录 引言1. RPM技术的基本原理2. RPM的应用领域3. RPM技术的挑战与发展趋势4. 总结 引言 在语音识别和音频处理领域&#xff0c;RPM&#xff08;Recurrent Phase Model&#xff0c;递归相位模型&#xff09;技术正逐渐崭露头角。它作为一种创新的信号处理方法&#xff0c;通过…

C语言程序的机器表示(逆向+函数调用栈详解版)

C语言程序的机器表示 1 基本数据类型 在Windows系统中&#xff0c;通常一个字等于两个字节&#xff0c;在32位程序和64位程序&#xff0c;在处理数据时&#xff0c;通常对8&#xff0c;4&#xff0c;2和1字节数据进行处理 x86使用的是浮点寄存器&#xff0c;Intel提供了8个128…

Linux 系统目录结构

1.ls /查看目录 &#xff08;1&#xff09;/bin&#xff1a;bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。 &#xff08;2&#xff09;/boot&#xff1a;存放启动 Linux 使用的一些核心文件&#xff0c;包括一些连接文件以及镜像文件。 &#xff0…

基于MPPT最大功率跟踪的光伏发电蓄电池控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于MPPT最大功率跟踪的光伏发电蓄电池控制系统simulink建模与仿真。本系统包括PV模块&#xff0c;电池模块&#xff0c;电池控制器模块&#xff0c;MPPT模块&#xff0c;PWM模…

matlab图像处理(1)

注意&#xff1a; 读取图像文件时需若图像不在工程目录文件下&#xff0c;需在代码中表明其其他路径的具体位置及名称

1.3 自然语言处理的应用

自然语言处理&#xff08;NLP&#xff09;在多个领域有广泛应用&#xff0c;如自动文摘、机器翻译、情感分析等。本实战将通过NLTK库&#xff0c;演示文本预处理的关键技术&#xff0c;包括小写转换、去噪、文本规范化、词干提取、词形还原、标记化以及删除停止词。这些技术为构…

更改lvgl图片的分辨率(减少像素)达到减小内存占用的目的

lvgl的内存占比过大&#xff0c;更改图片的分辨率&#xff08;减少像素&#xff09;达到减小内存占用的目的&#xff0c;可以用更多的空间去开发其他的功能 -- 由于lvgl中图片占的内存过大&#xff0c;所以需要更改图片的分辨率&#xff08;降低像素的方式&#xff09; --注意…