本章梳理一些常用的 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
微数据涉及到的属性有:
itemscope
itemtype
itemprop
itemref
itemid
该系列属性是WHATWG HTML Microdata feature的规范。
另外关于该系列属性的介绍,推荐该文章。
笔者暂时不作过多妄谈。