在CSS中定义一个DIV的position为absolute,但用脚本o.style.position读不到???

Triumph 2007-05-30 11:38:21
在IE6中:

一个DIV,ID="o",在CSS文件中定义position:absolute,在文档中通过脚本读取时读取不到,如:
alert(o.style.position);

但通过脚本设置此属性后可以读取,如:
o.style.position = "absolute";
alert(o.style.position);

这是为何?IE的BUG?
...全文
1130 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lisatisfy 2011-07-15
  • 打赏
  • 举报
回复
学习了。。。。
http://blog.csdn.net/lisatisfy/article/details/6607385
currentStyle在ff下不行。ff下有个'getComputedStyle' 函数,
于是封装了个函数:
function getRealStyle(el,cssName)
{
var len=arguments.length, sty, f, fv;

'currentStyle' in el ? sty=el.currentStyle : 'getComputedStyle' in window
? sty=window.getComputedStyle(el,null) : null;

if(cssName==="opacity" && document.all){
f = el.filters;
f && f.length>0 && f.alpha ? fv=f.alpha.opacity/100 : fv=1;
return fv;
}
cssName==="float" ? document.all ? cssName='styleFloat' : cssName='cssFloat' : cssName;
sty = (len==2) ? sty[cssName] : sty;
return sty;
}

yzn800930 2007-05-30
  • 打赏
  • 举报
回复
学习
RexZheng 2007-05-30
  • 打赏
  • 举报
回复
currentStyle 对象

--------------------------------------------------------------------------------

代表了在全局样式表、内嵌样式和 HTML 标签属性中指定的对象格式和样式。

注释

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 的脚本中可用。

Triumph 2007-05-30
  • 打赏
  • 举报
回复
OK了,的确是currentStyle!!!

但为何在 DHTML 的帮助中查不到这个currentStyle 呢?它是哪儿的?

希望各位给出解释。
RexZheng 2007-05-30
  • 打赏
  • 举报
回复
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※以下是引用1楼 ice_berg16(寻梦的稻草人) 在2007-05-30 11:39:09 的发言:
──────────────────────────────────────────
o.currentStyle.position;
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
学习了
dh20156 2007-05-30
  • 打赏
  • 举报
回复
currentStyle
Triumph 2007-05-30
  • 打赏
  • 举报
回复
试了一下,好象所有的在CSS中定义的样式通过脚本都无法读取,为何???
ice_berg16 2007-05-30
  • 打赏
  • 举报
回复
o.currentStyle.position;

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧