转:label标签的特殊用法
容易被忽略的label标签
原始作用 label标签是HTML原生的标签,其原始的作用参考这里 label 标签为 input 元素定义标注(标记)。
label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。
label 标签的 for 属性应当与相关元素的 id 属性相同 用户体验 label在提高用户体验的作用是非常大的,参考下面一段代码 <input type="radio" name="demo" value=""/>选项1
<input type="radio" name="demo" value=""/>选项2
<input type="radio" name="demo" value=""/>选项3
<input type="radio" name="demo" value=""/>选项4
<input type="radio" name="demo" value=""/>选项5 渲染在浏览器的效果是,一排并列的单选,但是你一定要选到单选的圆圈上,才能把选项点上 假如我们把代码改成 <input type="radio" id="demo1" name="demo" value=""/><label for="demo1">选项1</label>
<input type="radio" id="demo2" name="demo" value=""/><label for="demo2">选项2</label>
<input type="radio" id="demo3" name="demo" value=""/><label for="demo3">选项3</label>
<input type="radio" id="demo4" name="demo" value=""/><label for="demo4">选项4</label>
<input type="radio" id="demo5" name="demo" value=""/><label for="demo5">选项5</label> 则用户体验一下子提高了,因为当你点击文字的时候,对应的单选圆圈就勾上了。当然如果你觉得每个radio都要起个id太麻烦,还可以这样 <label><input type="radio" name="demo" value=""/>选项1</label>
<label><input type="radio" name="demo" value=""/>选项2</label>
<label><input type="radio" name="demo" value=""/>选项3</label>
<label><input type="radio" name="demo" value=""/>选项4</label>
<label><input type="radio" name="demo" value=""/>选项5</label> 可以在少死很多脑细胞(因为要起id名!)的情况下达到相同的用户体验。
移动端 在移动设备上,由于传统的鼠标变成手指,点击的精确度差了很多,所以我们有必要提高input获得焦点的区域。这时候label的作用就非常大了,参考以下代码 .mobi-input{
display: block;
width: 300px;
height: 30px;
} <label class="mobi-input">提示1<input type="text" name="demo"/></label> 调整.mobi-input的定义,我们可以较为自由地定义input获得焦点的盒子大小,从而达到上述目的。
兼容性 在三星的手机上,使用上述代码,除了input在获得焦点时会有很明显的outline外,还会把label的innerText变成input的placeholder(视觉上是这样的)。一开始看到这个问题,一般人会这样解决: .mobi-input{
display: block;
width: 300px;
height: 30px;
}
.mobi-input input,.mobi-input input:focus{
outline:none;
} <label class="mobi-input">提示1<input type="text" name="demo" placeholder=""/></label> 然后发现是不能解决的! 于是我在网上找一些现成的UI框架,然后用手机上,兼容性好的参考其源代码,终于找到一款UI: http://joapp.com/live/samples/kitchensink/index.html 能解决这个问题,查看其代码,原来非常简单的一句contenteditable="true"就能解决了~~~~ .mobi-input{
display: block;
width: 300px;
height: 30px;
} <label class="mobi-input">提示1<input type="text" name="demo" contenteditable="true"/></label> 然后就可以基于以上基础去封装个性化的移动设备UI控件了。 转:http://www.cnblogs.com/p2227/p/label_tag.html
转:label标签的特殊用法的更多相关文章
- 在学习HTML——form表单中的label标签时的一点小体会
在我啃了一遍书本之后,开始了在慕课看视频的过程,从最开始的HTML+CSS的基础课程看起,在第5-9小节讲到了form表单的label标签, 首先看一下慕课的讲解: label 标签不会向用户呈现任 ...
- HTML中Div、span、label标签的区别
div与span 大家在初学div+css布局时,有很多困惑,在div与span的使用过程没觉得有一定的”章法”,觉得两个区别不大,在w3c的关于div和span的定义:div作为分割文档结构自然使它 ...
- label标签的用法
label 标签for属性 <h1>显式指定通过for(for的值就是对应radio的id的值)</h1> <form> <label for="m ...
- js的label标签语句与with语句的用法
/** * label标签语句 * - 语法: * 标签名: 语句 * 如:start: n = 1; * 上面标签start可以被之后的break或continue语句引用 * - label标签语 ...
- HTML <label> 标签
定义:<label> 标签为 input 元素定义标注(标记). 用法: label 元素不会向用户呈现任何特殊效果.不过,它为鼠标用户改进了可用性.如果您在 label 元素内点击文本, ...
- label标签跳出循环
出场: 首先我们来说说为什么需要label标签,虽然我们已经知道有break,continue跳出循环,但如果是多重循环那么它们就显的无能为力了,所以就出现了label这个标签来为我们服务. 我们先来 ...
- Html5新标签解释及用法
Html5新标签解释及用法 HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 标准.它希望能够减少浏览器对于需要 ...
- a标签中的label在IE下触发不了a标签的href链接(label标签——解析)
<a href="http://www.baidu.com/" target="_blank"> <span>百度</span&g ...
- HTML<label> 标签的 for 属性
定义和用法 for 属性规定 label 与哪个表单元素绑定. 隐式和显式的联系 标记通常以下面两种方式中的一种来和表单控件相联系:将表单控件作为标记标签的内容,这样的就是隐式形式,或者为 <l ...
随机推荐
- 教你如何做好SEO优化中的前端优化
网站的速度是很多人都面临的问题,其实许多网站,都没有特意的去优化加载速度,对于一个网站来说,加速不但提高了用户体验(如果一个网站在几秒内没 有打开,大多数用户选择的是关闭而非等待),而且对于SEO的流 ...
- Java多线程-新特性-线程池
Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利.为了编写高效稳定可靠的多线程程序 ...
- 修改WAMPServer中MySql中文乱码的方法
修改MySql的配置文件my.ini,在[client]段落增加:default-character-set=utf8;在[mysqld]段落增加:character_set_server=utf8; ...
- eclipse-mysql-tomcat搭建jspk开发环境
...本来不想写,刚刚给女朋友又安了一次发现几乎忘了,还是记一下吧.. 1.默认安装好jdk以及eclipse或相关ide. 2.检查jdk环境变量是否配置成功:cmd下输入 java -versio ...
- list列表类型
list类型最典型的应用场景是做队列,相当于C#中的Queue(一般用ConcurrentQueue)队列. 我们可以使用lpush,lpop,rpush,rpop这四个命令来实现,如下图.
- web开发-前端到服务器Controller中的数据传递
一, ajax方式 1. ajax获取页面中的数据,包括表单中的数据, 然后封装成对象,数组, 字符串, 或其他基本类型的数据. 2. 将封装得到的数据通过ajax传递到controller中(注:在 ...
- bzoj 1965: [Ahoi2005]SHUFFLE 洗牌
#include<cstdio> #include<cstring> #include<iostream> #define ll long long using n ...
- LA 5059 - Playing With Stones
博弈 SG 由于每个a太大,没有办法递推,但是可以找规律 a为偶数 SG(a)=a/2 a为奇数 SG(a)=SG(a/2) 代码: #include <iostream> #inc ...
- 学习KMP算法的一点小心得
KMP算法应用于 在一篇有n个字母的文档中 查找某个想要查找的长度为m的单词:暴力枚举:从文档的前m个字母和单词对比,然后是第2到m+1个,然后是第3到m+2个:这样算法复杂度最坏就达到了O(m*n) ...
- 一看就懂的ReactJs入门教程(精华版)
一看就懂的ReactJs入门教程(精华版) 现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和 ...