HTML5——全局属性

来源:互联网 发布:达内 java培训 编辑:程序博客网 时间:2024/06/02 02:15

在HTML 5中,新增了一个“全局属性”的概念。所谓全局属性,是指可以对任何元素都使用的属性,本节将详细介绍几种常用的全局属性。

一、contentEditable属性

contentEditable是由微软开发、被其他浏览器反编译并投入应用的一个全局属性。该属性的主要功能是允许用户编辑元素中的内容,所以该 元素必须是可以获得鼠标焦点的元素,而且在点击鼠标后要向用户提供一个插入符号,提示用户该元素中的内容允许编辑。contentEditable属性是 一个布尔值属性,可以被指定为true或false。

除此之外,该属性还有个隐藏的inherit(继承)状态,属性为true时,元素被指定为允许编辑;属性为false时,元素被指定为不允许编辑;未指定true或false时,则由inherit状态来决定,如果元素的父元素是可编辑的,则该元素就是可编辑的。

另外,除了contentEditable属性外,元素还具有一个isContentEditable属性,当元素可编辑时,该属性为true,当元素不可编辑时,该属性为false。

示例1中给出了一个使用contentEditable属性的示例,当列表元素被加上contentEditable属性后,该元素就变成可编辑的了,读者可自行在浏览器中对该示例进行试验。

示例1:

折叠XML/HTML 代码复制内容到剪贴板
  1. <!DOCTYPE html>
  2. <head>
  3. <meta charset="utf-8 ">
  4. <title>conentEditalbe属性示例</title>
  5. </head>
  6. <h2>可编辑列表</h2>
  7. <ul contentEditable="true">
  8. <li>列表元素1</li>
  9. <li>列表元素2</li>
  10. <li>列表元素3</li>
  11. </ul>

这段代码运行后的结果如图1所示。

图1 可编辑列表示例
图1 可编辑列表示例

在编辑完元素中的内容后,如果想要保存其中内容,只能把该元素的innerHTML发送到服务器端进行保存,因为改变元素内容后该元素的innerHTML内容也会随之改变,目前还没有特别的API来保存编辑后元素中的内容。

最后,在这里列举一下支持contentEditable属性的元素:defaults、A.、ABBR、ACRONYM、ADDRESS、B、 BDO、BIG、BLOCKQUOTE、BODY、BUTTON、CENTER、CITE、CODE、CUSTOM、DD、DEL、DFN、DIR、 DIV、DL、DT、EM、FIELDSET、FONT、FORM、hn、I、INPUT type=button、INPUT type=password、INPUT type=radio、INPUT type=reset、INPUT type=submit/INPUT type=text、INS、ISINDEX、KBD、LABEL。

二、designMode属性

designMode属性用来指定整个页面是否可编辑,当页面可编辑时,页面中任何支持上文所述的contentEditable属性的元素都变成 了可编辑状态。designMode属性只能在JavaScript脚本里被编辑修改。该属性有两个值——“on”与“off”。属性被指定为“on” 时,页面可编辑;被指定为“off”时,页面不可编辑。使用JavaScript脚本来指定designMode属性的方法如下所示:

折叠XML/HTML 代码复制内容到剪贴板
  1. document.designMode="on"

针对designMode属性,各浏览器的支持情况也各不相同:

★ IE8:出于安全考虑,不允许使用designMode属性让页面进入编辑状态。

★ IE9:允许使用designMode属性让页面进入编辑状态。

★ Chrome 3和Safari:使用内嵌frame的方式,该内嵌frame是可编辑的。

★ Firefox和Opera:允许使用designMode属性让页面进入编辑状态。

三、hidden属性

在HTML 5中,所有的元素都允许使用一个hidden属性。该属性类似于input元素中的hidden元素,功能是通知浏览器不渲染该元素,使该元素处于不可见 状态。但是元素中的内容还是浏览器创建的,也就是说页面装载后允许使用JavaScript脚本将该属性取消,取消后该元素变为可见状态,同时元素中的内 容也即时显示出来。Hidden属性是一个布尔值的属性,当设为true时,元素处于不可见状态,当设为false时,元素处于可见状态。

四、spellcheck属性

spellcheck属性是HTML 5针对input元素(type=text)与textarea这两个文本输入框提供的一个新属性,它的功能为对用户输入的文本内容进行拼写和语法检查。 spellcheck属性是一个布尔值的属性,具有true或false两种值。但是它在书写时有一个特殊的地方,就是必须明确声明属性值为true或 false.书写方法如下所示:

折叠XML/HTML 代码复制内容到剪贴板
  1. <!--以下两种书写方法正确-->
  2. <textarea spellcheck="true">
  3. <input type=text spellcheck=false>
  4. <!--以下书写方法为错误-->
  5. <textarea spellcheck>

需要注意的是,如果元素的readOnly属性或disabled属性设为true,则不执行拼写检查。

目前除了IE之外,Firefox、Chrome、Safari、Opera等浏览器都对该属性提供了支持。图2为Opera浏览器中spellcheck属性的表现形式。

图2 Opera浏器中spellcheck的属性示例
图2 Opera浏器中spellcheck的属性示例

五、tabindex属性

tabindex是开发中的一个基本概念,当不断敲击Tab键让窗口或页面中的控件获得焦点,对窗口或页面中的所有控件进行遍历的时候,每一个控件的tabindex表示该控件是第几个被访问到的。

过去这个属性在编辑网页时是非常有用的,但如今控件的遍历顺序是由元素在页面上所处的位置决定的,所以就不再需要了。

但是tabindex还有另外一个作用,在默认情况下,只有链接元素与表单元素可以通过按键获得焦点。如果对其他元素使用tabindex属性后, 也能让该元素获得焦点,那么当脚本中执行focus()语句的时候,就可以让该元素获得焦点了。但这样做会产生一个副作用:该元素也可以通过按Tab键获 得焦点,而这有时可能不是开发者想要的结果。

把元素的tabindex值设为负数,(通常为-1)后就解决这个问题了。tabindex的值为负数后,仍然可以通过编程的方式让元素获得焦点, 但按下Tab键时该元素就不能获得焦点了,这在复杂的页面中或复杂的Web应用程序中是十分有用的。在HTML 4中,-1是一个无用的属性值,但到了HTML 5中,通过巧妙地运用让该属性值得到了极大的应用。