label元素浅析
来源:互联网 发布:视频合并软件绿色版 编辑:程序博客网 时间:2024/06/05 10:11
1.相信很多人都使用过label标签,那么label标签到底是起到了什么作用呢?下面就来聊聊label标签的作用。
要知道一个标签的作用是啥,最好的办法是看官方文档。
下面是官方文档对label标签的解释
The label element represents a caption in a user interface. The caption can be associated with a specific form control, known as the label element’s labeled control, either using the for attribute, or by putting the form control inside the label element itself.
翻译过来就是,label元素就是用户界面的标题,这个标题可以与一个指定的表单控制联系在一起,其方式有两种,一种是用label元素的for属性来指定,另一种是将表单放在label元素里面。
the attribute’s value must be the ID of a labelable element in the same tree as the label element
for属性一般用的是要控制的表单的id。
也就是说,将label和表单元素联系在一起,下面看例子
<html><head> <style type="text/css"> div{ background:red; width:40px; height:40px; } </style></head><body><label> <div >点我</div> <input type="radio" name="sex" id="male" /></label><script type="text/javascript"> var input=document.getElementById('male'); var div=document.getElementsByTagName("div")[0]; input.onclick=function(){ console.log("click input male") }; div.onclick=function(){ console.log("click div") }; </script> </body>
上面代码中,通过将div和表单元素放在同一个label里面来实现两者的关联,同时为两者分别增加了点击事件。
当点击红色div时,其输入的结果如下所示:
同时input元素也变成选中状态
如果将label元素改为div元素则没用这种效果
<html><head> <style type="text/css"> div>div{ background:red; width:40px; height:40px; } </style></head><body><div> <div >点我</div> <input type="radio" name="sex" id="male" /></divl><script type="text/javascript"> var input=document.getElementById('male'); var div=document.getElementsByTagName("div")[0].childNodes[2]; input.onclick=function(){ console.log("click input male") }; div.onclick=function(){ console.log("click div") }; </script> </body>
点击红色div结果如下:
可见此时红色div没有和input关联在一起。
当然还有第二种方法,就是设置label的for属性
<html><head> <style type="text/css"> div{ background:red; width:40px; height:40px; } </style></head><body><label for="male"><div>点我</div></label><input type="radio" name="sex" id="male" /><script type="text/javascript"> var input=document.getElementById('male'); var div=document.getElementsByTagName("div")[0]; input.onclick=function(){ console.log("click input male") }; div.onclick=function(){ console.log("click div") }; </script> </body>
结果是一样的,且可以不用将表单元素放在label标签内部。
label元素的好处
- 可以增加表单元素的可响应区域范围。
点击表单元素外周围的区域即可以触发表单元素的事件 - 同时避免了用javascript实现元素之间的关联。
想想如果没有label元素,但又要实现表单元素的关联,那么你可能对会其他元素进行监听,当其他元素触发时,同时模拟触发表单元素的事件。
阅读全文
0 0
- label元素浅析
- html标签label元素
- jquery根据label文本查找label元素
- Cocos2d-x Label 试用浅析
- Cocos2d-x Label 试用浅析
- vector删除元素浅析
- img元素srcset属性浅析
- Cocos2d-x 菜鸟进阶篇(四)Label 试用浅析
- cocos2dx3.2技术之新字体标签Label浅析
- label
- Label
- label
- Label
- label
- Label
- label
- label
- label
- 早期MyBatis开发与接口式Mybatis开发的简介
- 《Unity 3D游戏客户端基础框架》tolua 框架接入
- Atomic类和CAS
- 【gas-station】
- 旋转卡壳算法
- label元素浅析
- 项目实战
- Spring集成Hibernate5_01-basic
- ROS 学习
- mysql索引总结----mysql 索引类型以及创建
- 【开发笔记】JS中encodeURI与encodeURIComponent
- 求三维凸包重心到表面最短距离
- angular的缓存机制
- nodeJS入门——新建一个项目及代码详解