《HTML 5与CSS 3 权威指南(第3版·上册)》——2.4 全局属性

简介:

本节书摘来自华章出版社《HTML 5与CSS 3 权威指南(第3版·上册)》一 书中的第2章,第2.4节,作者:陆凌牛,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.4 全局属性

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

2.4.1 contentEditable属性

contentEditable是由微软开发的,被其他浏览器反编译并投入应用的一个全局属性。该属性的主要功能是允许用户编辑元素中的内容,所以该元素必须是可以获得鼠标焦点的元素,而且在点击鼠标后要向用户提供一个插入符号,提示用户该元素中的内容允许编辑。contentEditable属性是一个布尔值属性,可以被指定为true或false。
除此之外,该属性还有个隐藏的inherit(继承)状态,当属性值为true时,元素被指定为允许编辑;当属性值为false时,元素被指定为不允许编辑;当未指定true或false时,则由inherit状态来决定,如果元素的父元素是可编辑的,则该元素就是可编辑的。
另外,除了contentEditable属性外,元素还具有一个isContentEditable属性,当元素可编辑时,该属性值为true;当元素不可编辑时,该属性值为false。
代码清单2-2中给出了一个使用contentEditable属性的示例,当列表元素被加上contentEditable属性后,该元素就变成可编辑的了,读者可自行在浏览器中对该示例进行
试验。
代码清单2-2 contentEditable属性示例

<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>conentEditalbe属性示例</title>
</head>
<h2>可编辑列表</h2>
<ul contentEditable="true">
<li>列表元素1</li>
<li>列表元素2</li>
<li>列表元素3</li>
</ul>```
这段代码运行后的结果如图2-2所示。

<div style="text-align: center"><img src="https://yqfile.alicdn.com/28e0b65372387d1dfb56593bfb4d2c4821771473.png" width="" height="">
</div>

在编辑完元素中的内容后,要想保存其中内容,只能把该元素的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。
####2.4.2 designMode属性
designMode属性用来指定整个页面是否可编辑,当页面可编辑时,页面中任何支持上文所述的contentEditable属性的元素都变成了可编辑状态。designMode属性只能在JavaScript脚本中被编辑修改。该属性有两个值——“on”与“off”。当该属性值被指定为“on”时,页面可编辑;当该属性值被指定为“off”时,页面不可编辑。使用JavaScript脚本来指定designMode属性的方法如下所示:

document.designMode="on"`
针对designMode属性,各浏览器的支持情况也各不相同:
IE 8:出于安全考虑,不允许使用designMode属性让页面进入编辑状态。
IE 9:允许使用designMode属性让页面进入编辑状态。
Chrome 3和Safari:使用内嵌frame的方式,该内嵌frame是可编辑的。
Firefox和Opera:允许使用designMode属性让页面进入编辑状态。

2.4.3 hidden属性

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

2.4.4 spellcheck属性

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

<!—以下两种书写方法正确-->
<textarea spellcheck="true" >
<input type=text spellcheck=false>
<!—以下书写方法为错误-->
<textarea spellcheck >```
需要注意的是,如果元素的readOnly属性或disabled属性设为true,则不执行拼写检查。
目前除了IE之外,Firefox、Chrome、Safari、Opera等浏览器都对该属性提供了支持。
图2-3为Opera浏览器中spellcheck属性的表现形式。

<div style="text-align: center"><img src="https://yqfile.alicdn.com/4cdacbcb38c7931dddea48ab21812c87bda3f826.png" width="" height="">
</div>

####2.4.5 tabindex属性
tabindex是开发中的一个基本概念,当不断敲击Tab键让窗口或页面中的控件获得焦点,当对窗口或页面中的所有控件进行遍历的时候,每一个控件的tabindex表示该控件是第几个被访问到的。
过去这个属性在编辑网页时是非常有用的,但如今控件的遍历顺序是由元素在页面上所处位置决定的,所以就不再需要了。
但是tabindex还有另外一个作用,在默认情况下,只有链接元素与表单元素可以通过按键获得焦点。如果对其他元素使用tabindex属性后,也能让该元素获得焦点,那么当脚本中执行focus()语句的时候,就可以让该元素获得焦点。但这样做会产生一个副作用:该元素也可以通过按Tab键获得焦点,而这有时可能不是开发者想要的结果。
相关文章
|
14天前
|
前端开发 JavaScript 开发工具
【HTML/CSS】入门导学篇
【HTML/CSS】入门导学篇
23 0
|
20天前
|
XML 前端开发 数据格式
css核心组成部分包括选择器、属性和值。
【4月更文挑战第5天】css核心组成部分包括选择器、属性和值。
18 7
|
5天前
|
数据采集 前端开发 网络协议
如何使用代理IP通过HTML和CSS采集数据
如何使用代理IP通过HTML和CSS采集数据
|
6天前
|
前端开发 UED
CSS cursor的一些相关属性
CSS cursor的一些相关属性
|
9天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
18 1
|
9天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
10天前
|
前端开发
css属性是什么
【4月更文挑战第15天】css属性是什么
13 3
|
16天前
|
JSON JavaScript 前端开发
js是什么、html、css
js是什么、html、css
|
17天前
|
XML 前端开发 JavaScript
css和html
【4月更文挑战第7天】css和html
13 0
|
22天前
|
人工智能 前端开发 JavaScript
【前端设计】HTML+CSS+JavaScript基本特性
【前端设计】HTML+CSS+JavaScript基本特性