转:label标签的特殊用法

容易被忽略的label标签
原始作用

label标签是HTML原生的标签,其原始的作用参考这里

    label 标签为 input 元素定义标注(标记)。
    label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。
     label  标签的 for 属性应当与相关元素的 id 属性相同

用户体验

label在提高用户体验的作用是非常大的,参考下面一段代码

    <input type="radio" name="demo" value="1"/>选项1
    <input type="radio" name="demo" value="2"/>选项2
    <input type="radio" name="demo" value="3"/>选项3
    <input type="radio" name="demo" value="4"/>选项4
    <input type="radio" name="demo" value="5"/>选项5

渲染在浏览器的效果是,一排并列的单选,但是你一定要选到单选的圆圈上,才能把选项点上

假如我们把代码改成

    <input type="radio" id="demo1" name="demo" value="1"/><label for="demo1">选项1</label>
    <input type="radio" id="demo2" name="demo" value="2"/><label for="demo2">选项2</label>
    <input type="radio" id="demo3" name="demo" value="3"/><label for="demo3">选项3</label>
    <input type="radio" id="demo4" name="demo" value="4"/><label for="demo4">选项4</label>
    <input type="radio" id="demo5" name="demo" value="5"/><label for="demo5">选项5</label>

则用户体验一下子提高了,因为当你点击文字的时候,对应的单选圆圈就勾上了。当然如果你觉得每个radio都要起个id太麻烦,还可以这样

    <label><input type="radio" name="demo" value="1"/>选项1</label>
    <label><input type="radio" name="demo" value="2"/>选项2</label>
    <label><input type="radio" name="demo" value="3"/>选项3</label>
    <label><input type="radio" name="demo" value="4"/>选项4</label>
    <label><input type="radio" name="demo" value="5"/>选项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
时间: 2024-11-09 01:23:30

转:label标签的特殊用法的相关文章

HTML中Div、span、label标签的区别

div与span 大家在初学div+css布局时,有很多困惑,在div与span的使用过程没觉得有一定的”章法”,觉得两个区别不大,在w3c的关于div和span的定义:div作为分割文档结构自然使它最官方的语义,但是这样的官方语义太让人迷惑,大的结构还好,但是小的地方到底是用div还是用span仍然让人迷惑.其实恰恰是<Microsoft MSDN Library>里面的定义让人豁然开朗. div:指定渲染HTML的容器 span:指定内嵌文本容器 通俗地讲就是如果里面还有其他标签的时候就用

label标签的用法

label 标签for属性 <h1>显式指定通过for(for的值就是对应radio的id的值)</h1> <form> <label for="male">Male</label> <input type="radio" name="sex" id="male" /> <br /> <label for="female&quo

-----关于H5中的label标签的用法--------

一.label标签的作用 label标签来定义表单控制间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单内容上. 二.举例说明          label标签的for属性的效果就是,鼠标点击"女"实现radio选中的效果,主要 归功于for=nv 而且必须要求input文本框的id也等于nv,男这个radio作对比,没有这个效果. 1 <div> 2 <label for="nan1">男</label> 3

微信小程序组件解读和分析:十一、label标签

label标签组件说明: label标签,与html的label标签基本一样.label 元素不会向用户呈现任何特殊效果.不过,它为鼠标用户改进了可用性.如果您在 label 元素内点击文本,就会触发此控件.就是说,当用户选择该标签时,就会自动将焦点转到和标签绑定的表单控件上,主要用来改进表单组件的可用性.使用for属性找到对应的id,或者将控件放在该标签下,当点击时,就会触发对应的控件.for优先级高于内部控件,内部有多个控件的时候默认触发第一个控件.目前可以绑定的控件有:<button/>

关于label标签的研究

一:功能介绍 定义:label 元素不会向用户呈现任何特殊效果.它为鼠标用户改进了可用性.总的来说<label>专为input元素服务,为其定义标记. 用法:<label> 标签的 for 属性与相关元素的 id 属性相同,用来指定是向与哪个元素绑定. 二:应用示例 例子如下: 用户名:<input type="text" name="userName" id="userName"  />,像这个代码运行后,你

label 标签

在表单布局中会遇到label标签的使用,label没有任何样式效果,有触发对应表单控件功能.比如我们点击单选按钮或多选框前文字对应选项就能被选中,这个就是对文字加了<label>标签实现. 一.点击文字,对应选择上控件   -   TOP 点击<label>标签文字时,实现对应控件被选择,需要对应表单控件id的值与label标签内的for值相同. 二.label语法   -   TOP <label for="man">男</label>

label标签跳出循环

出场: 首先我们来说说为什么需要label标签,虽然我们已经知道有break,continue跳出循环,但如果是多重循环那么它们就显的无能为力了,所以就出现了label这个标签来为我们服务. 我们先来看看单独使用break的情况 1 for(var i=0;i<4;i++){ 2 for(var j=0;j<4;j++){ 3 if(i===1&&j===1){ 4 break; 5 }else{ 6 console.log("i:"+i+"--j

HTML&lt;label&gt; 标签的 for 属性

定义和用法 for 属性规定 label 与哪个表单元素绑定. 隐式和显式的联系 标记通常以下面两种方式中的一种来和表单控件相联系:将表单控件作为标记标签的内容,这样的就是隐式形式,或者为 <label> 标签下的 for 属性命名一个目标表单 id,这样就是显式形式. 例如,在 XHTML 中: 显式的联系: [html] view plaincopy <label for="SSN">Social Security Number:</label>

关于label标签的作用

label标签的定义和用法: <label> 标签为 input 元素定义标注(标记). label 元素不会向用户呈现任何特殊效果.不过,它为鼠标用户改进了可用性.如果您在 label 元素内点击文本,就会触发此控件.就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上. <label> 标签的 for 属性应当与相关元素的 id 属性相同. --W3school的解释 经常见到这样的表单元素,比如:点击一张图片可以重新更换图片,或者点击下图所示的复选框