使用currentStyl读取Tag的样式数据

原文: http://www.java2000.net/p9852
今天需要某个div的属性,可是竟然读不到。
  1. <style type="text/css">
  2. #kuai{
  3. width:50px;
  4. height:50px;
  5. background-color:#000000;
  6. }
  7. </style>
  8. <div id="kuai" onclick="alert(this.style.width);">121212</div>
每次都是空白

经查,可以用currentStyle实现。这东西对于一些人来说算常识,可是对专于Java的我来说,可是难道我了。

  1. <style type="text/css">
  2. #kuai{
  3. width:50px;
  4. height:50px;
  5. background-color:#000000;
  6. }
  7. </style>
  8. <div id="kuai" onclick="alert(this.currentStyle.width);">121212</div>

附 currentStyle的解释
urrentStyle 对象返回了元素上的样式表,但是 style 对象只返回通过 STYLE 标签属性应用到元素的内嵌样式。因此,通过 currentStyle 对象获取的样式值可能与通过 style 对象获取的样式值不同。例如,如果段落的 color 属性值通过链接或嵌入样式表设置为红色( red ),而不是内嵌的话,对象.currentStyle.color 将返回正确的颜色,而对象 style.color 不能返回值。但是,如果用户指定了 <P STYLE="color:'red'">,currentStyle 和 STYLE 对象都将返回值 red。

currentStyle 对象反映了样式表中的样式优先顺序。在 HTML 中此顺序为:

1. 内嵌样式
2. 样式表规则
3. HTML 标签属性
4. 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 的脚本中可用。

你可能感兴趣的:(使用currentStyl读取Tag的样式数据)