原生表单部件(组件) - 浏览器内置表单
一、通用属性
属性名称 | 默认值 | 描述 |
---|---|---|
autofocus | false | 允许您指定当页面加载时元素应该自动具有输入焦点,除非用户覆盖它,例如通过键入不同的控件。文档中只有一个与表单相关的元素可以指定这个属性 |
disabled | false | 默认表示用户不能与元素交互。如果没有指定这个属性,元素将从包含的元素继承它的设置,例如<fieldset>;如果没有包含disabled属性集的元素,那么就启用了元素 |
form | 小部件与之相关联的表单元素。属性值必需是同个文档中的<form> 属性的 id属性。理论上,它允许您在<form>元素之外设置一个表单小部件。然而,在实践中,没有任何支持该特性的浏览器。 | |
name | 元素的名称,用于表单数据提交的 | |
value | 元素的初始值 |
二、文本输入域 - <input>
1.HTML表单文本字段是简单的纯文本输入控件。不能使用它们执行富文本编辑(粗体、斜体等)。将遇到的所有富文本编辑器(rich text editors)都有使用HTML、CSS和JavaScript创建的自定义小部件。
2.通用规范:
可以被标记为readonly,甚至disabled(输入值永远不会与表单数据的其余部分一起发送);
可以有一个placeholder,用来简述输入框的目的;
可以被限制在size(框的物理尺寸)和长度(输入的最大字符数);
可以从拼写检查中获益(浏览器支持才行)。
3.单行文本域 - <input>
元素可以是任何东西,通过简单的设置type属性,可以用于创建大多数类型的表单小部件(单行文本字段、没有文本输入的控件、时间和日期控件、按钮),多行输入时用<textarea>元素.
1 | //HTML |
4.多行文本域 - <textarea>
和单行的区别:
<input> :元素是一个空元素,不能包含任何子元素;
定义一个默认值时,必须用value属性;
<textarea> :元素是一个常规元素,可以包含文本内容的子元素;
允许用户输入包含硬换行符(即按回车)的文本;
定义一个默认值,只需将默认文本放在 <textarea ...>默认文本</textarea>;
只接受文本内容,即是任何HTML内容放入<textarea>中都将以纯文本内容呈现。
属性:
cols:文本控件的可见宽度,平均字符宽度 默认20
rows:控制的可见文本行数
wrap:表示控件是如何包装文本的 默认soft 可切换 hard | soft
tips:右下角有个调整大小的区域,需要在CSS中设置resize = none来关闭(chorme的浏览器不需要设置)
三、下拉窗口小部件
1.HTML有两类下拉内容:select box和autocomplete box,它们交互是相同的,一旦控件被激活,浏览器会显示用户可以选择的值列表。
2.选择框
1 | <h2>下拉窗口小部件</h2> |
3.自动补全输入框
1 | <div> |
tips:
根据HTML规范,list 属性和<datalist>元素元素可以用于任何需要用户输入的小部件;
但是,除了文本(例如颜色或日期),它应该如何工作还不清楚,不同的浏览器在不同的情况下会有不同的表现。正因为如此,除了文本字段以外,要小心使用这个特性。
数据列表支持和兼容
<datalist>元素是HTML表单的最新补充,它在10以下的IE版本中不受支持,Safari在写作时仍然不支持它。
兼容
支持<datalist>元素的浏览器将忽略所有不是<option>元素的元素,并按照预期工作。
不支持<datalist>元素的浏览器将显示标签和选择框。
还有其他方法可以处理<datalist> 元素的不足,但这是最简单的(其他方法往往需要JavaScript)
1 | <div> |
四、可选中项
可选中项是状态可以通过单击它们来改变小部件,包含:复选框和单选按钮,使用checked属性,表示是否在默认情况下进行检查。在发送表单数据时,只有勾选的内容的值才被发送。
1.复选框
1 | <div> |
2.单选按钮
1 | <div> |
3.eg:
1 | <div> |
五、按钮
1.在HTML表单中,有三种按钮:
Submit:将表单数据发送到服务器;
Reset:将所有表单小部件重新设置为它们的默认值;
Anonymous:没有自动生效的按钮,但是可以使用JS代码定制,如果省略type属性,那么就是默认值;
2.使用<button>元素或者<input>元素创建一个按钮,type属性的值指定显示什么类型的按钮。
1 | <h2>按钮</h2> |
2.滑块
使用滑块。从视觉上讲,滑块比文本字段更不准确,因此它们被用来选择一个确切值并不重要的数字;
input type = range 正确配置滑块是很重要的;强烈建议您设置min、max和step属性;
不提供任何形式的视觉反馈,以了解当前的值是什么。需要使用JavaScript来添加这一点
1 | <div> |
1 | var beans = document.querySelector('#beans'); |
3.日期时间选择器
所有日期和时间控制都可以使用min和max属性来约束;
警告——日期和时间窗口小部件仍然很不受支持。目前,Chrome、Edge和Opera都支持它们,但IE浏览器没有支持,Firefox和Safari对这些都没有太大的支持。
1 | <div> |
颜色小部件支持它目前不是很好。IE中没有支持,Safari目前也不支持它。其他主要的浏览器都支持它.
七、其他小部件
1.文件选择器
input type = file accept属性约束被接受文件类型,添加multiple属性来实现选择多文件.
1 | <div> |
4.图像按钮
input type = image 图像按钮控件是一个与<img>元素完全相同的元素,除了当用户点击它时,它的行为就像一个提交按钮.
如果使用图像按钮来提交表单,这个小部件不会提交它的值;相反,在图像上单击的X和Y坐标是被提交的(坐标是相对于图像的,这意味着图像的左上角表示坐标0,0),坐标被发送为两个键/值对:
X值键是name属性的值,后面是字符串“.x”。
Y值键是name属性的值,后面是字符串“.y”。
1 | <div> |
5.仪表和进度条
仪表和进度条是数值的可视化表示。
仪表:meter(不支持元素的浏览器回退,辅助技术对其发声)元素创建,表示一个固定值,值由min和max决定,并以条形的方式显示。
low 和 high 值范围划分为三个部分:
该范围的较低部分是在min和low值(包括那些值)之间。
该范围的中间部分是在low和high值之间(不包括那些值)。
该范围的较高部分是在high和max值(包括那些值)之间。
optimum值定义了<meter>元素的最优值。在与optimum和high值的联合中,它定义了该范围的哪个部分是优先的:
如果optimum)值在较低的范围内,则较低的范围被认为是首选项,中等范围被认为是平均值,而较高的范围被认为是最坏的部分。
如果optimum值在该范围的中等部分,则较低的范围被认为是一个平均值,中等范围被认为是优先的部分,而较高的范围也被认为是平均值。
如果optimum值在较高的范围内,则较低的范围被认为是最坏的部分,中等范围被认为是一般的部分,较高的范围被认为是优先的部分。
所有实现<meter>元素的浏览器都使用这些值来改变米尺的颜色。
如果当前值位于该范围的优先部分,则该条是绿色的。
如果当前值位于该范围的平均部分,则该条是黄色的。
如果当前值处于最糟糕的范围,则该条是红色的。
进度条: progress(不支持元素的浏览器回退,辅助技术对其发声)元素创建,一个进度条表示一个值(它会随时间的变化而变化到最大的值,由max属性指定)。
1 | <h1>自定义小部件</h1> |