零基础HTML教程(26)--表单元素标注

文章目录

  • [1. 引子](#1. 引子)
  • [2. 使用标注](#2. 使用标注)
  • [3. 元素的id与name](#3. 元素的id与name)
  • [4. 更好的写法](#4. 更好的写法)
  • [5. 小结](#5. 小结)

1. 引子

我们看一个表单:

html 复制代码
		<form>
            姓名:<input type="text"><br>
            手机号:<input type="text"><br>
            年龄:<input type="text"><br>
            <input type="button" value="注册">
        </form>

用起来没啥问题,但是还不够完美。

仔细观察,姓名、手机号、年龄其实都是表单元素的说明,如果我们给他们加上个标签,会有意想不到的好处。

例如,视障人士专用浏览器,如果知道这几个文字是表单元素的说明,那么可以把这些文字阅读出来。

好吧,其实HTML中有这样的元素,他就是------表单元素标注,也就是label标签。

2. 使用标注

有了label,我们可以改写代码如下:

html 复制代码
		<form>
            <label>姓名:</label><input type="text"><br>
            <label>手机号:</label><input type="text"><br>
            <label>年龄:</label><input type="text"><br>
            <input type="button" value="注册">
        </form>

但是还差点意思,就是标注跟表单元素没有明确的对应关系。

所以我们可以给每个元素一个唯一id属性,然后让标注的for属性指向这个id,如下:

html 复制代码
		<form>
            <label for="username">姓名:</label><input type="text" id="username"><br>
            <label for="phone">手机号:</label><input type="text" id="phone"><br>
            <label for="age">年龄:</label><input type="text" id="age"><br>
            <input type="button" value="注册">
        </form>

这样label就跟表单元素一一对应上了,此时查看网页:

注意:当鼠标单击"姓名"的时候,焦点会自动移动到第一个输入框之内,这就是标注的一个功能。

3. 元素的id与name

上面的例子中,我们给元素加了个id:<input type="text" id="username">,之前我们还讲过,元素其实也有name属性,如果我们加上name属性的话,代码如下:

html 复制代码
		<form>
            <label for="username">姓名:</label><input type="text" id="username" name="username"><br>
            <label for="phone">手机号:</label><input type="text" id="phone" name="phone"><br>
            <label for="age">年龄:</label><input type="text" id="age" name="age"><br>
            <input type="button" value="注册">
        </form>

那么id和name属性有啥区别呢,这里讲一下。

id是所有html元素的身份证,也就是唯一标志。

name往往是给表单元素起名用的,主要是将表单提交给后端时,区分表单元素提交内容。

4. 更好的写法

其实每个标注跟元素都是一组,所以如下写法可能更佳:

html 复制代码
	<form>
        <div>
            <label for="username">姓名:</label><input type="text" id="username" name="username">
        </div>
        <div>
            <label for="phone">手机号:</label><input type="text" id="phone" name="phone">
        </div>
        <div>
            <label for="age">年龄:</label><input type="text" id="age" name="age">
        </div>
        <div>
            <input type="button" value="注册">
        </div>
    </form>

5. 小结

标注这个知识点稍微冷门点,掌握更佳。

相关推荐
炫酷的大高个34 分钟前
6 亿播放的闪身步,我用前端算出 15 倍重心差
前端·javascript
不可能片场41 分钟前
内容运营自动化 配图折行别把词切两半
前端·electron
Lank_M1 小时前
HEIC转JPG统一转sRGB,P3高饱和色就回不来了
前端
补码缩写1 小时前
sharp默认转JPG颜色没错,ICC和EXIF却全没了
前端
用户7783366132111 小时前
SerpBase AI Overview 引用卡片:React 组件实战
前端
林小帅1 小时前
【笔记】Prisma v7 + SQLite TS2305 及连锁 TS7006 问题
前端·javascript·后端
HUANGZHENXUAN1231 小时前
最大子矩阵和:从 O(n⁴) 到 O(n³) 的列压缩 + Kadane
c语言·前端
叼烟扛炮3 小时前
[LangChain] 学习笔记(03):打破失忆症——对话机制与上下文管理
java·前端·javascript·笔记·学习·langchain
IT_陈寒4 小时前
SpringBoot实战技巧总结
前端·人工智能·后端
TeamDev4 小时前
使用 JxBrowser 在桌面应用中集成 Spring
java·前端·后端·spring·混合应用·jxbrowser·浏览器控件