HTML+CSS - 表单交互(一)

1. 前言

​​​​​​​

Web 表单是用于和用户交互的强大工具——其常用于收集用户数据和控制用户界面。

web 表单是用户和 web 站点或应用程序之间交互的主要内容之一。它们允许用户输入数据,大多数情况下会将数据发送到 web 服务器进行处理和存储

2. form标签

嵌套在表单中的结构元素

2.1 <fieldset></fieldset>

在表单内部构造小组件的形式,可以想像为将表单内部不同功能区域进行分区

每个区域的名称由<legend></legend>进行控制

	<body>
		<form>
			<fieldset>
				<legend>OKOKOKOK</legend>
			<ul>
				<li>
					<label for='name'>Name:</label>
					<input type='text' id='name' name='user_name'>
				</li>
				<li>
					<label for='mail'>E-mail</label>
					<input type='email' id='mail' name='user_email'>
				</li>
				<li>
					<label for='msg'>Message</label>
					<textarea id='msg' name='user_message'></textarea>
				</li>
			</ul>
			</fieldset>
		</form>
	</body>

如上图所示,OKOKOK则是这个区域的名称, 囊括了Name,E-mail,Message等交互信息

理想情况下,长表单应该在拆分为多个页面,但是如果表单很长,却必须在单个页面上,那么将以不同的关联关系划分的分段,分别放在不同的 fieldset 里,可以提高可用性。

2.2 <label></label>

标签用于定义表单控件的标签,通常用于向用户描述输入字段的用途。通过将for属性与表单元素的id属性相关联,用户点击该标签时,浏览器会自动将焦点放到关联的输入字段上。

简单来说label有两个功能

- 补充说明交互区域的功能

- 当用户点击label所显示的文字时,光标会自动跳转至交互区域

<label for="name">Name:</label> <input type="text" id="name" name="user_name" />

3. 表单组件

3.1 文本框text

<input type="text" id="comment" name="comment" value="I'm a text field" />

name 属性定义了表单数据在提交到服务器时的,也就是该字段的标识符。服务器接收表单数据时,会以 name的值作为标识,并将输入的值与之关联。

value则是键值所对应的数值

id是为了CSS进行修饰处理

上述的例子在提交表单之后,在后台会得到

comment = 'I'm a text field';

3.2 密码password

<input type="password" id="pwd" name="pwd" />

其实质也是一种文本框 

会模糊输入到字段中的值(例如,用点或星号),这样它就不能被其他人读取。 

3.3 隐藏项目

<input type="hidden" id="timestamp" name="timestamp" value="1286705410" />

它被用于创建对用户不可见的表单部件,但在发送表单时,会与其他的表单数据一起被发送到服务器

3.4 选择项目

• 单选框

type设置为radio来创建单选按钮

<input type='radio' id='OK' name='meat' checked>

几个单选按钮可以连接在一起。如果它们的name属性共享相同的值,那么它们将被认为属于同一组的按钮。同一组中只有一个按钮可以同时被选;

• 复选框

type设置为checkbox以此实现复选框

<input type="checkbox" id="questionOne" name="subscribe" value="yes" checked />

相关的复选框元素应该使用具有相同值的name属性。包含 checked 属性使复选框在页面加载时自动被选中。点击复选框或其相关联的标签也将自动翻转复选框的状态(选中、取消选中)

在使用复选框时,最好使用fieldset与表格所嵌套的形式进行排列,直观整齐

<fieldset>
<legend></legend>
<ol>
<li>
<label for="peas">Peas</label>
<input type="checkbox" id="peas" name="vegetable" value="peas" />
</li>
<li>
<label for="peas">Peas</label>
<input type="checkbox" id="peas" name="meat" value="peas" />
</li>
</ol>
</fieldset>

3.5 按钮

在input中的按钮设置与button中的按钮设置,几乎等价对应

• Submit

将form中所交互的数据发送到服务器

<button type="submit">This is a <strong>submit button</strong></button>

<input type="submit" value="This is a submit button" />

• Reset

将所有表单小部件重新设置为默认value值

<button type="reset">This is a <strong>reset button</strong></button>

<input type="reset" value="This is a reset button" />

• Anonymous

自定义按钮,通过JavaScript进行自定义定制功能

<button type="button">This is an <strong>anonymous button</strong></button>

<input type="button" value="This is an anonymous button" />

• 图片按钮

<input type="image" alt="Click me!" src="my-img.png" width="80" height="30" />

src对应的链接图片,通过width与height设置图片的大小

通过图片进行表单发送,这个图片组件返回的是一个由X,Y组成的坐标值

文件选择器

定义type为file,使得用户将文件发送到服务器

通过设置不同属性进行文件传输的约束,例如accept属性约束传输文件类型,设置multiple可选择多个文件

<input type="file" accept="image/*;capture=camera" />
<input type="file" accept="video/*;capture=camcorder" />
<input type="file" accept="audio/*;capture=microphone" />

4. 其他类型

4.1 邮箱

<input type="email" id="email" name="email" />

用户需要输入一个合法的电子邮件地址,任何其他输入都会使得浏览器在表单提交时显示错误信息

4.2 查询

查询字段旨在用于在页面和应用程序上创建搜索框 

<input type="search" id="search" name="search" />

如若没有设定交互形式,本质与text格式一样,但显示方式不同

4.3 电话号码

创建一个专门用于输入电话号码的文本域

<input type="tel" id="tel" name="tel" />

4.4 网址

创建一个专门输入网址的字段

<input type="url" id="url" name="url" />

浏览器会在没有协议(例如 http:)输入或网址格式不对的情况下报告错误

4.5 数字

<input type="number" name="change" id="pennies" min="0" max="1" step="0.01" />

从 0 到 1 之间选择值得数字选择器,且单击一次按钮所增长或减少的值为 0.01

4.6 滑块组件

滑块组件常用于选择数字,但准确性肯定是不如直接输入数字,所以常用于选择精准度要求不那么高的数字信息

使用range进行滑块的声明

<label for="price">Choose a maximum house price: </label>
<input
  type="range"
  name="price"
  id="price"
  min="50000"
  max="500000"
  step="100"
  value="250000" />
<output class="price-output" for="price"></output>
min滑块所指示的数字最小值
max滑块所指示数字的最大值
step每移动滑块改变数字大小的范围

使用ouput实时更新滑块所显示的数字大小

注意,在现实生活中还需要使用Javascript真正的去实时更新数字大小 

4.7 时间模块

• datetime-local

使用户选择年-月-日-具体时间的信息

<input type="datetime-local" name="datetime" id="datetime" />

• month

用户选择年-月信息

<input type="month" name="month" id="month" />

• time

选择具体时间信息

<input type="time" name="time" id="time" />

• week

选择周信息,第xx年的第几周

<input type="week" name="week" id="week" />


时期同数字一样,也可以通过相关参数进行自定义化调整,例如min,max,step

4.8 颜色控制器

设定type为color,可以选择颜色控制器

<input type="color" name="color" id="color" />

5. 参考资料

https://developer.mozilla.org/zh-CN/docs/Learn/Forms/HTML5_input_types

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis篇(Redis原理 - RESP协议)

目录 一、简介 二、Redis通信协议 基于Socket自定义Redis的客户端 三、Redis内存回收 1. 过期key处理 1.1. 惰性删除 1.2. 周期删除 1.3. 知识小结 2. 内存淘汰策略 一、简介 Redis是一个CS架构的软件&#xff0c;通信一般分两步&#xff08;不包括pipeline和PubSub&a…

AI不可尽信

看到某项目有类似这样的一段代码 leaves : make([]int, 10) leaves leaves[:0]没理解这样的连续两行,有何作用? 初始化一个长度和容量都为10的切片,接着把切片长度设置为0 即如下demo: (在线地址) package mainimport "fmt"func main() {leaves : make([]int, 1…

M3u8视频由手机拷贝到电脑之后,通过potplayer播放报错找不到文件地址怎么解决?

该文章前面三节主要介绍M3u8视频是什么&#xff0c;视频播放错误(找不到地址)的解决方法在后面 M3U8是一种多媒体播放列表文件格式&#xff0c;主要用于流媒体播放。 一、文件格式特点 1. 文本文件&#xff1a;M3U8是一个采用 UTF-8 编码的文本文件&#xff0c;这意味着它可…

【STM32开发之寄存器版】(三)-详解NVIC中断

一、前言 STM32F103ZET6具备强大的中断控制能力&#xff0c;其嵌套向量中断控制器(NVIC)和处理器核的接口紧密相连&#xff0c;可以实现低延迟的中断处理和高效地处理晚到的中断。NVIC主要具备以下特性&#xff1a; 68个可屏蔽中断通道(不包含16个Cortex™-M3的中断线)&#xf…

经典文献阅读之--WiROS(用于机器人的WiFi感知工具箱)

0. 简介 近期的许多研究探索了使用基于WiFi的感知技术来改善SLAM&#xff08;同时定位与地图构建&#xff09;、机器人操控或探索。此外&#xff0c;WiFi的广泛可用性使其成为最具优势的射频信号。但WiFi传感器缺乏一个准确、易处理、多功能的工具箱&#xff0c;这限制了它们与…

VUE2常见问题以及解决方案汇总(不断更新中)

解决vue项目中 el-table 的 row-click 事件与行内点击事件冲突&#xff0c;点击事件不生效&#xff08;表格行点击事件和行内元素点击事件冲突&#xff09;需要阻止事件冒泡 问题描述 1.点击列的编辑按钮&#xff0c;会触发按钮本身事件&#xff0c;同时会触发行点击事件 2.点…

SaaS 应用如何助长网络犯罪

过去十年&#xff0c;软件即服务 (SaaS)的采用呈爆炸式增长&#xff0c;彻底改变了我们的工作方式。 从电子邮件平台到通信和协作应用程序&#xff0c;再到文件存储和共享服务&#xff0c;这些工具有望为我们的日常工作生活带来更大的灵活性和效率&#xff0c;尤其是在当今的远…

Linux环境基础开发工具使用(2)

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 Linux环境基础开发工具使用(2) 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. Li…

VS开发 - 静态编译和动态编译的基础实践与混用

目录 1. 基础概念 2. 直观感受一下静态编译和动态编译的体积与依赖项目 3. VS运行时库包含哪些主要文件&#xff08;从VS2015起&#xff09; 4. 动态库和静态库混用的情况 5. 感谢清单 1. 基础概念 所谓的运行时库&#xff08;Runtime Library&#xff09;就是WINDOWS系统…

防反接电路设计

方案1 串联二极管&#xff0c; 优点&#xff1a;成本低、设计简单 缺点&#xff1a;损耗大&#xff0c;P ui 方案2 串联自恢复保险丝 当电源反接的时候&#xff0c;D4导通&#xff0c;F2超过跳闸带你留&#xff0c;就会断开&#xff0c;从而保护了后级电路 方案3 H桥电路…

解决DHCP服务异常导致设备无法获取IP地址的方法

DHCP在网络环境中会自动为网络中的设备分配IP地址和其他关键网络参数&#xff0c;可以简化网络配置过程。但是&#xff0c;如果DHCP服务出现异常时&#xff0c;设备可能无法正常获取IP地址&#xff0c;会影响到网络通信。 本文讲述一些办法可以有效解决DHCP服务异常导致设备无法…

No.2 笔记 | 网络安全攻防:PC、CS工具与移动应用分析

引言 在当今数字化时代,网络安全已成为每个人都应该关注的重要话题。本文将总结一次关于网络安全攻防技术的学习内容,涵盖PC端和移动端的恶意程序利用,以及强大的渗透测试工具Cobalt Strike的使用。通过学习这些内容,我们不仅能够了解攻击者的手法,更能提高自身的安全意识和防…

Java编码方式:Base64编码与解码

1、Base64 算法介绍 Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。它主要用于在不支持二进制数据的场合&#xff08;如电子邮件、URL、文件系统名等&#xff09;传输二进制数据。严格来说 Base64 并不是一种加密/解密算法&#xff0c;而是一种编码方式。Bas…

基于Springboot+Android的的电子书阅读器系统的设计与实现(含源码+数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 该系统…

二分查找一>山脉数组的峰顶索引

1.题目&#xff1a; 2.解析&#xff1a; 代码&#xff1a; public int peakIndexInMountainArray(int[] arr) {int left 1, right arr.length-2;while(left < right) {int mid left (right-left1) / 2;if(arr[mid] > arr[mid-1]) left mid;else right mid-1;}ret…

openpnp - 视觉原点的位置要离设备的软限制点远一点

文章目录 openpnp - 视觉原点的位置要离设备的软限制点远一点笔记备注END openpnp - 视觉原点的位置要离设备的软限制点远一点 笔记 最开始的视觉原点&#xff0c;是在设备X 0, Y 0的附近位置&#xff0c;粘了一块20x20x20的铝块&#xff0c;铝块上面贴着用黑塑料皮打印的1…

esp8266 at指令链接wifi时一直connect disconnest

那是你的连接wifi的名字密码有误或者热点有问题&#xff0c;看看热点是不是把设备拉入黑名单或者设置为5G或者连了校园网或者设置了最多链接设备

IntelliJ IDEA 2024.2 新特性概览

文章目录 1、重点特性:1.1 改进的 Spring Data JPA 支持1.2 改进的 cron 表达式支持1.3 使用 GraalJS 作为 HTTP 客户端的执行引擎1.4 更快的编码时间1.5 K2 模式下的 Kotlin 性能和稳定性改进 2、用户体验2.1 改进的全行代码补全2.2 新 UI 成为所有用户的默认界面2.3 Search E…

C++模拟实现vector容器【万字模拟✨】

更多精彩内容..... &#x1f389;❤️播主の主页✨&#x1f618; Stark、-CSDN博客 本文所在专栏&#xff1a; 学习专栏C语言_Stark、的博客-CSDN博客 项目实战C系列_Stark、的博客-CSDN博客 数据结构与算法_Stark、的博客-CSDN博客 座右铭&#xff1a;梦想是一盏明灯&#xff…

设计模式之原型模式(通俗易懂--代码辅助理解【Java版】)

文章目录 设计模式概述1、原型模式2、原型模式的使用场景3、优点4、缺点5、主要角色6、代码示例7、总结题外话关于使用序列化实现深拷贝 设计模式概述 创建型模式&#xff1a;工厂方法、抽象方法、建造者、原型、单例。 结构型模式有&#xff1a;适配器、桥接、组合、装饰器、…