-
div+css视频教程之currentStyle 对象
currentStyle 对象
代表了在全局样式表、内嵌样式和 HTML 标签属性中指定的对象格式和样式。
成员表
下面的表格列出了 currentStyle 对象引出的成员。请单击左侧的标签来选择你想要查看的成员类型。
属性
SHOW: 属性 方法 样式
属性 描述 blockDirection 获取表明块元素内容的绕排方向的值,是由左至右,还是由右至左。 clipBottom 获取对象剪裁区域的底边坐标。 clipLeft 获取对象剪裁区域的左边坐标。 clipRight 获取对象剪裁区域的右边坐标。 clipTop 获取对象剪裁区域的顶边坐标。 onOffBehavior 获取表明指定的 Microsoft® DirectAnimation® 行为是否正在运行的对象。 属性
方法
方法 描述 getAttribute 获取指定标签属性的值。 getExpression 获取给定属性的表达式。 setAttribute 设置指定标签属性的值。 setExpression 设置指定对象的表达式。 样式
注释
currentStyle 对象返回了元素上的样式表,但是 style 对象只返回通过 STYLE 标签属性应用到元素的内嵌样式。因此,通过 currentStyle 对象获取的样式值可能与通过 style 对象获取的样式值不同。例如,如果段落的 color 属性值通过链接或嵌入样式表设置为红色( red ),而不是内嵌的话,对象.currentStyle.color 将返回正确的颜色,而对象 style.color 不能返回值。但是,如果用户指定了 <P STYLE="color:'red'">,currentStyle 和 STYLE 对象都将返回值 red。
currentStyle 对象反映了样式表中的样式优先顺序。在 HTML 中此顺序为:
- 内嵌样式
- 样式表规则
- HTML 标签属性
- HTML 标签的内部定义
从而,currentStyle 对象将为 bold 标签返回 fontWeight 值 normal,若在样式表中为此标签指定了 normal。
currentStyle 返回反映页面所应用的样式设置的值,但可能并不反映获取值时渲染所采用的值。例如,样式值设置为 "color:red; display:none" 的对象,将返回 currentStyle.color 为 red,尽管该对象并不在页面上渲染。也就是说,currentStyle 对象并不受渲染与否的绑定。在下面示例区的第三个例子演示了此行为。禁用的样式表也不影响 currentStyle 值。
返回值的单位与设置对象时的单位相同。例如,若对象的颜色是以内嵌 STYLE="color:'green'" 的格式设置的,那么 object.currentStyle.color 将返回 green 而不是 #00FF00 (与绿色相等的红绿蓝十六进制值)。但是,当 currentStyle 对象返回对象值的时候出现在作者所设置的对象值中的大写和多余的空白将被去掉。
currentStyle 对象支持用户自定义的样式规则属性。请参看示例区的第二个例子。
currentStyle 对象是异步的。这意味着样式不可能被设置后马上就能查询,而是返回旧值。因此,对于含有 addImport 这样方法的想要获得所期待的 currentStyle 行为的脚本,该脚本需要包含一个调用方法的函数和一个检查 currentStyle 的函数。对于需要在页面装载的时候检查当前属性的脚本,脚本必须等到 body 元素装入且页面被选然后,否则 currentStyle 的值可能不反映所显示的情况。
此对象在 Microsoft® Internet Explorer 5 的脚本中可用。
示例
下面的例子使用 currentStyle 对象将文本颜色设置为棕色。如果你单击着色区域并且背景颜色与文本颜色相同,checkColor 函数就会更改背景颜色,以方便阅读文本。否则,该函数不做任何操作。
这个例子仅当主体和文本颜色同时使用颜色名称或 RGB 十六进制值时可用,混合使用时无效。
SHOWExample
<SCRIPT> function checkColor(oObj) { if (oObj.currentStyle.backgroundColor == 'brown') { oObj.style.backgroundColor = 'white'; } else : } </SCRIPT> </HEAD> : <P STYLE="background-color: 'brown'" onclick="checkColor(this)">这个例子使用 currentStyle 对象获取创建于样式规则的用户自定义属性。alert 返回值 myvalue。
SHOWExample
<STYLE> P { myproperty:myvalue } </STYLE> <BODY> <P ID=oPrgrph> : <SCRIPT> alert(oPrgrph.currentStyle.myproperty) </SCRIPT>这个例子由 currentStyle 对象返回的 td 对象宽度是其层叠宽度值而不是屏幕上渲染的宽度值。