W3C HTML5标准阅读笔记 – 全局属性(Global attributes)

标准原文:http://www.w3.org/TR/html5/dom.html#global-attributes

HTML5中,存在多个可供所有元素使用的属性,称之为全局属性(Global attributes)。这些属性主要分为两大类,一类是表述元素语义的属性,如id、class等;另一类是表述元素上挂载事件监听的属性,如onlick、onmouseover等。不过,虽然这些属性可以在所有元素上合法使用,但部分属性仅在特定的元素上才能发挥作用。比如volumechange属性就只能在媒体相关的元素上产生作用。

id

id属性用于确定DOM中元素的唯一标识符。id值的规则为:必须包含至少一个字符,且不能包含空格符;除此之外,可以使用任何字符串来作为id值。

title

title属性用于对元素的内容进行提示,一般通过鼠标悬停在元素上时所显示的tooltip来进行展现。不过,由于目前的浏览器在可用性上(accessibility)对title属性的支持并不好,因此在实际开发过程中title属性只能作为辅助手段来显示信息,不建议在该属性中存放影响文档理解的内容。

在使用title属性时,如果文档源代码中title属性值出现了换行,则在页面中显示的tooltip也会出现换行。如:

<p>My logs show that there was some interest in <abbr title="Hypertext  
Transport Protocol">HTTP</abbr> today.</p>  

上述代码的效果是,当鼠标悬停在“HTTP”上时,会出现一个tooltip,而在tooltip中“Hypertext”之后会出现换行。HTML源代码中的换行会直接反映到具体页面中的显示,这与别的很多属性的行为是不同的。

lang

lang属性用于设定元素内容的自然语言,以及元素中别的属性值的自然语言。如果该值为空字符串,则表示该元素的自然语言情况未知。页面组件可以使用该自然语言信息来决定显示在组件上的具体文字,比如日期选择器组件可以使用该自然语言信息来决定月份和星期的显示方式。

如果某元素的lang属性缺失,则该元素的自然语言的情况取决于其父级元素的lang值,依此类推。因此,如果需要定义整个文档的自然语言,则在html标签中定义lang值即可。WebStorm在新建HTML文件时默认是将lang设定在head标签中的,根据HTML5标准此处的阐述,正确的做法应当是将lang设定在html标签中,而不是head标签。

如果整个文档都未出现lang属性,则浏览器会在文档中寻找http-equiv值为content-language的meta标签,并将该标签的值设定为整个文档的自然语言值。

如果整个文档都未出现lang属性,也不存在http-equiv值为content-language的meta标签,则浏览器会从文档的HTTP Response头中寻找有关页面的自然语言的信息。

如果通过上述3种方式均未能获取自然语言信息,则该文档的语言信息未知。

translate

当页面被翻译软件进行本地化处理时,translate属性用于控制元素的内容是否会被翻译。该属性有3个可选值,当translate值为空字符串或者”yes”时,元素内容会被翻译;而当translate值为”no”时,则元素内容不被翻译。