<label>使用探究

<label> 标签为 input 元素定义标注(标记)。

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

<label> 标签的 for 属性应当与相关元素的 id 属性相同。

实际应用

  1. <input>元素前的文本标记
  2. 自定义控件样式

实际上是对1的功能的扩展,在Sementic UI等前端框架中被使用,与<input type="checkbox|radio">关联的<label>被点击时会自动选中/取消<input>控件,配合相邻兄弟选择器和:checked伪类即可实现自定义控件的功能,优点在于无需Javascript且兼容性强。

至于具体的样式,可以使用伪元素或直接修改label样式

<label> + 相邻兄弟选择器实现的checkbox

input[type="checkbox"] + label::before {
  content: '\a0'; /* 不换行空格 */
  display: inline-block;
  vertical-align: .2em;
  width: .8em;
  height: .8em;
  margin-right: .2em;
  border-radius: .2em;
  background: silver;
  text-indent: .15em;
  line-height: .65;
}

input[type="checkbox"]:checked + label::before {
  content: '\2713';
  background: yellowgreen;
}

实际效果可在http://dabblet.com/gist/e269f10328615254e29e查看

3. 页面内锚点,相比<a href="#id">不修改页面URL的hash,可以重复点击

4. 利用<label>转移焦点的特性通过多个<label>实现<input>上方字段的通透性。

注意事项

  1. 应给所有<input>都绑定<label>

参考书目/链接

  1. 《CSS揭秘》(《CSS Secrets》), Lea Verou, O'Reilly, 人民邮电出版社
  2. 表单显式LABEL和隐式LABEL对屏幕阅读器用户的影响–更新
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,886评论 25 709
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,827评论 1 92
  • Bootstrap是什么? 一套易用、优雅、灵活、可扩展的前端工具集--BootStrap。GitHub上介绍 的...
    凛0_0阅读 10,955评论 3 184
  • 2016.7.8周五。天气阴沉,这一天去过很多地方也经过很多。太忙碌他多的事情围绕所以就直接绕过直到今天去回忆过往...
    元气满满的慧慧酱阅读 246评论 0 0
  • 下午忙完 打开微信 朋友圈又被女性如何保护自己刷屏了 掐指一算 又有大事件发生了 果不其然 看着各种报道 脑海里突...
    時間的光阅读 490评论 0 2