标准属性

一些HTML元素可能会有自己的必需属性和可选属性,而有些属性几乎可以用于任何元素(并且基本上都是可选的)。为了避免重复,在此分类讲述这些属性。

1.核心属性
下列这些属性包含关于元素的一般特性,可以包含在几乎任何元素的开标签内。

class:用于指定元素使用的类的名称,主要用于样式表对元素的样式设置参照使用,此外对于客户端脚本编程也会有用。class属性值即类名为字符串,可以由字母、数字、连字符(-)和下划线(_)组成,其他的标点符号或者特殊符号是不允许的。可以有多个元素属于同一类,此外一个元素也可以属于不止一个类,此时属性值中的多个类名用空格隔开。适用元素:除base、basefont、head、html、meta、script、title、style以外的任何元素。

id:为元素指定唯一的标识符。id属性主要为脚本语言程序和样式表对元素的参照使用。id属性值不能包含除连字符(-)和下划线(_)之外的任何标点符号,其中第一个字符必须是字母,而不能是数字或任何其他字符。同一网页文件中元素的id属性值不可重复,就是说不能有多个元素共用一个id标识符。适用元素:除base、head、html、meta、script、title、style以外的任何元素。id属性的只要用途包括:

style:为元素指定CSS属性。这杯称为内联样式定义(inline styling)。虽然style属性对大多数元素都有效,但应尽量不使用,因为它把内容和表现混在一起了。适用元素:除base、basefont、head、html、meta、script、param、title、style以外的任何元素

title:为元素提供一个文本标题。许多图形化浏览器将title属性的值显示在“工具提示”(即用户的鼠标指针逗留在所呈现的元素上方时出现的那个小小的浮动窗口)中。适用元素:除base、basefont、head、html、meta、script、param、title以外的任何元素

2. 国际化属性
此类属性包含关于用于书写元素内容的自然语言(英语、法语、拉丁语等)的信息。它们几乎可以包含在任何元素中,特别是那些所包含的语言不同于文档其他部分的元素。

dir:用来设置文本阅读方向。其属性值可以为ltr(从左到右)或者rtl(从右到左)。通常用不着这个属性,因为语言方向应该可以从lang属性来推断。适用元素:除applet、base、basefont、br、bdo、frame、frameset、iframe、param以外的任何元素。

lang:指定用来书写所包含的内容的语言。语言(属性值)用一种缩写的语言代码表示,如en代表英语,es代表西班牙语。Lang属性通常用于html元素中,用于指明“全体”网页元素所使用的语言。若有特定元素由不同的语言要求,才会在元素中进行个别设置。适用元素:除applet、base、basefont、br、frame、head、html、meta、frameset、script、iframe、param以外的任何元素。

xml:lang:指定用来书写所包含的内容的语言,这是lang属性的XML形式,可用于XHTML文档(XHTML文档既是XML的又是HTML的,取决于服务器如何交付它)。它的值同样是语言代码。

3. 焦点属性
当某些元素——尤其是链接和表单元素——处于预激活状态时,被称为拥有焦点(focus),因此浏览器的“注意力”集中在该元素身上,准备激活它。可以为一些元素设置下列焦点属性以增强其对于用键盘在网页上导航的人的可用性。

accesskey:为元素分配一个键盘快捷键,以便在用键盘导航时更方便、快捷地访问它。该属性的值对应于访问键的字符。用于激活访问键实际按键组合因浏览器和操作系统而异。

tabindex:指定元素在使用制表键遍历链接和表单控件时所形成的访问顺序中的位置。

对于accesskey,似乎浏览器支持的不那么广泛,Windows下的IE可以很好地支持,其他浏览器可能不支持。

4. 事件属性
事件属性用于客户端脚本编程。script元素定义的脚本,在文档加载之后只能运行一次。如果想要脚本多次运行,或者有条件地重复运行,则可以利用内在事件脚本定义。
内在脚本事件是跟随元素的,它在用户进行特定操作之后可以触发,这些事件有加载、点击、鼠标移动、获得焦点等。
下表列举了可以触发脚本的各种事件:

触发脚本的事件
事件 说明
onload 文档或图像被加载完毕之后运行的脚本,该属性适用于body、frameset及img元素
onunload 文档被关闭或重置时触发的脚本该属性适用于body和frameset元素
onclick 鼠标单击元素之后运行的脚本,该属性适用于大多数元素
ondbclick 鼠标双击元素之后运行的脚本,该属性适用于大多数元素
onmousedown 鼠标按钮对元素按下之后运行的脚本,该属性适用于大多数元素
onmouseup 鼠标按钮对元素释放之后运行的脚本,该属性适用于大多数元素
onmouseover 鼠标移动到元素上方之后运行的脚本,该属性适用于大多数元素
onmouseout 鼠标离开元素上方之后运行的脚本,该属性适用于大多数元素
onmousemove 鼠标移动经过元素上方之后运行的脚本,该属性适用于大多数元素
onkeydown 键盘按键对元素按下之后运行的脚本,该属性适用于大多数元素
onkeypress 键盘按键对元素按下和释放之后运行的脚本,该属性适用于大多数元素
onkeyup 键盘按键对元素释放之后运行的脚本,该属性适用于大多数元素
onfocus 元素通过鼠标点击或者Tab键遍历(以tabindex属性设定)获得焦点时运行的脚本。该属性适用于a、area、label、input、select、textarea和button等元素
onblur 元素通过鼠标点击或者Tab键遍历(以tabindex属性设定)失去焦点时运行的脚本。该属性适用于a、area、label、input、select、textarea和button等元素
onselect 当用户选择了文本框部分文本时触发的脚本。该属性适用于input和textarea元素
onchange 当一个元素失去焦点,并且控件的值在获得焦点之后被更改,则触发脚本,该属性适用于input、select和textarea元素
onsubmit 当表单被提交时触发的脚本,该属性仅适用于form元素
onreset 当表单被重置时触发的脚本,该属性仅适用于form元素

这些事件属性中的onclick、ondlbclick、onkeydown、okeypress、onkeyup、onmousedown、onmouseup、onmousemove、onmouseout、onmouseover适用于几乎所有的HTML元素。

实践证明onfocus和onblur焦点事件属性也可用于其他元素,只要该元素可获得焦点,如设置tabindex属性。
onselect不仅用于文本框也适用于input设置的其他控件。

不过这种内联的事件处理器虽然使用方便,却又遭到很多人的反对,因为越来越多的人认为脚本带来的行为性增强最好与文档的内容和结构分开。