# 容易被忽略的label标签## 原始作用`label`标签是HTML原生的标签,其原始的作用参考[这里](http://www.w3school.com.cn/tags/tag_label.asp) 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控件了。
详细解决方案
简略被忽略的label标签
热度:102 发布时间:2016-04-24 03:02:00.0
相关解决方案
- mschart如何显示value label
- label 显示系统时间有关问题
- 部类(System.Web.UI.WebControls.Label)与控件(System.Web.UI.HtmlControls.HtmlGenericC
- DataList里面的<Label> 的id ,怎样给它上数据?解决方法
- label 显示有关问题,求解
- 有关<asp:Label>控件的有关问题
- Label 换行有关问题
- label 框,的小疑点
- 运算符“==”无法应用于“string”和“System.Web.UI.WebControls.Label”类型的操作数,该怎么处理
- Label 控件在表格单元格中,Label 显示的文字超长,导致版式破坏。该怎么解决
- error: initialization of 'm' is skipped by 'default' label,该如何处理
- 编译工具不能识别 Label ??奇怪的问题!!
- bootstrap3-label&badge 标签跟标号
- <form:label>标签的有关问题
- 行内元素设立宽高(span label a )
- unexpected end of token stream The last token was: </mx:Label>
- Extjs运用ScriptTagProxy获得服务器json字符串时报错:invalid label
- 到目前为止类乎无人能摆平,服务端返回json数据,总是提示“invalid label”
- Vaadin Web应用开发课程(8):UI组件-Label
- IE 里 label 的 innerHTML 属性没用?该怎么解决
- does not contain handler parameter named 'opp'. This may be caused by whitespace in the label text解决方案
- 哪位高手有好看点的 textbox ,label ,button 的CSS 阿
- java label 设置背景图片有关问题.无法显示.求解释.代码如下
- 求大神解释一下java中的break label;用法的优缺点解决方法
- label 的repaint()有关问题
- 使用Struts时,遇到的有关问题:does not contain handler parameter named method . this may be caused by whitespace in the label text.异
- 新手有关问题 QLabel *label = new QLabel(QWidget* parent = 0)
- 定制的tableviewcell ( label + UITextField) 会导致程序crash,该如何解决
- 定制的tableviewcell ( label + UITextField) 能导致程序crash
- android 终竟是什么决定了app的名称 application label activity label