本章梳理一些常用的 HTML 标签上可设置的属性。
暂不包含部分废弃或者没有利用价值的属性。
这里的全局属性指的是所有 HTML 标签都可以添加的属性。
即使属性可能对某些标签不起作用。
id
元素的唯一标识符。该标识符在整个文档中必须是唯一的。
TIP
这里的唯一指的是最优解。
你当然可以给许多元素设置相同的 id 值,浏览器并不会报错。
但当你想要利用 document.getElementById() 方法来获取某一个目标元素时,可能并不会得到你想要的结果。
class
元素的 class 名。
style
设置元素的行内样式。
title
设置元素的提示信息。
这些提示信息,通常会在鼠标处于元素上才会展示。
譬如:
<p title="Hello world">将鼠标置于该文本之上,会展示"Hello world"的提示信息。</p>将鼠标置于该文本之上,会展示"Hello world"的提示信息。
contenteditable
表示元素是否可被用户编辑。 如果可以,浏览器会调整元素的部件(widget)以允许编辑。
譬如一个可编辑的 div:
<div contenteditable style="width: 300px;height: 20px;border: 1px solid #ccc;">可编辑的div</div>TIP
有一说,contenteditable 是一个枚举属性,而非布尔属性。
必须显式的设置其值为 true、false 或空字符串中的一个。而不能简写为 <div contenteditable>value</div>。
但笔者在上例中,发现 chrome 会自动将 contenteditable 修改为 contenteditable="true"。
data-*
元素的自定义数据属性。
它赋予我们在所有 HTML 元素上嵌入自定义数据属性的能力,并可以通过脚本 (一般指 JavaScript) 与 HTML 之间进行专有数据的交换。
draggable
元素是否可以被拖动。
譬如一个可以被拖动的 div:
<div draggable style="width: 300px;height: 30px;border: 1px solid #000;">可以被拖动</div>TIP
img 等部分元素本身就可以被拖动。
部分不可拖动元素添加上该属性之后,才会变成可拖动。
hidden
隐藏元素。相当于 display: none;
譬如一个被隐藏的 div:
<div hidden style="width: 300px;height: 30px;border: 1px solid #000;">元素已隐藏</div>inputmode
键盘的输入模式。
常用于 input 元素。但当其他不可编辑元素,设置了 contenteditable 时,也可以利用该属性。
它默认值是 text,表明使用本地的标准文本输入键盘。
它具有以下可以设定的值:
none: 无虚拟键盘。在应用程序或者站点需要实现自己的键盘输入控件时很有用。text: 使用用户本地区域设置的标准文本输入键盘。decimal: 小数输入键盘,包含数字和分隔符(通常是.或者,),设备可能也可能不显示减号键。numeric: 数字输入键盘,所需要的就是0到9的数字,设备可能也可能不显示减号键。tel: 电话输入键盘,包含0到9的数字、星号(*)和井号(#)键。search: 为搜索输入优化的虚拟键盘,比如,返回键可能被重新标记为搜索,也可能还有其他的优化。email: 为邮件地址输入优化的虚拟键盘,通常包含@符号和其他优化。url: 为网址输入优化的虚拟键盘,比如,/键会更加明显、历史记录访问等。
譬如一个支持小数输入键盘的 input 框:
<input inputmode="decimal" />又或者是一个支持电话输入键盘的可编辑 div:
<div inputmode="tel" contenteditable style="width: 300px;height: 20px;border: 1px solid #ccc;">可编辑的div</div>TIP
推荐在移动端测试上述键盘效果。
spellcheck
是否检测元素存在拼写错误。
有拼写错误的情况下,chrome 会在文字下方出现红色虚线。
它通常用于 input 元素或者带有 contenteditable 的不可编辑元素。
譬如一个可编辑的 div:
<div spellcheck contenteditable style="width: 300px;height: 20px;border: 1px solid #ccc;">helloo world</div>is
允许指定标准 HTML 元素应该像已注册的自定义内置元素一样。
HTML5微数据相关属性
HTML5 微数据规范是一种标记内容以描述特定类型的信息,每种信息都有描述特定类型的项。
我们常用的 HTML 标签(如 p、h1、header、footer 等),在某种程度上都是为了方便机器的识别,方便搜索引擎的 SEO 优化。
而 HTML5 微数据规范是为了允许开发者在网页元素中嵌入自定义属性,以便更加精细的优化那些已经在 DOM 中的数据的语义性。
HTML5 微数据涉及到的属性有:
itemscopeitemtypeitempropitemrefitemid
该系列属性是WHATWG HTML Microdata feature的规范。
另外关于该系列属性的介绍,推荐该文章。
笔者暂时不作过多妄谈。