JavaScript 获取非行间样式的浏览器兼容方案
本文详解如何在 JavaScript 中兼容获取元素的非行间样式。针对 IE 与标准浏览器的差异,分别介绍了 currentStyle 和 getComputedStyle 的使用,并提供了兼容性及扩展性两种封装写法。需注意该方法仅支持读取,不支持设置样式值。
获取非行间样式概述
本文主要介绍如何获取元素的非行间样式。
#div1 {
width: 200px;
height: 200px;
background: red;
}
在 IE 浏览器中,可以通过元素的 currentStyle 对象来获取样式。例如,获取 id 为 div1 的元素宽度:var oDiv = document.getElementById('div1'); oDiv.currentStyle.width;
IE 浏览器中的实现方式
var oDiv = document.getElementById('div1');
oDiv.currentStyle.width;
Chrome/FF获取非行间样式
var oDiv = document.getElementById('div1');
oDiv.getComputedStyle(oDiv,false).width;
一种通用的兼容性写法是结合 IE 和标准浏览器的方法。首先判断 currentStyle 是否存在,若存在则使用它,否则使用 getComputedStyle。代码示例:var oDiv = document.getElementById('div1'); var eleWidth = oDiv.currentStyle && oDiv.currentStyle.width || getComputedStyle(oDiv,false).width;
通用兼容性写法
var oDiv = document.getElementById('div1');
var eleWidth = oDiv.currentStyle && oDiv.currentStyle.width || getComputedStyle(oDiv,false).width;
为了增强代码的扩展性和复用性,可以将上述逻辑封装为一个函数。该函数接收元素对象和样式名作为参数,返回对应的样式值。代码示例:function getStyle(obj,name){ return obj.currentStyle?obj.currentStyle[name]:getComputedStyle(obj,false)[name]; }
函数封装与扩展
function getStyle(obj,name){
return obj.currentStyle?obj.currentStyle[name]:getComputedStyle(obj,false)[name];
}
注意事项
注意:上述方法仅用于获取非行间样式,无法用于设置非行间样式的值。
以上介绍了 JavaScript 获取非行间样式的兼容性处理方法,希望对大家有所帮助。如有任何疑问,欢迎留言,小编会及时回复大家!
JS监听滚动事件:回到顶部按钮的显示与隐藏逻辑
2026-11-05 16:19:37
JavaScript怎么读写LocalStorage与SessionStorage
2026-11-05 15:40:11
anime.js 与 GSAP 对比:轻量级项目该怎么选择动画库
2026-11-05 11:24:55
flv.js 与 hls.js 在直播场景下的选型对比
2026-11-05 08:18:52
JavaScript能做什么?前端开发中的作用与应用场景解析
2026-11-04 23:17:54
