js访问CSS属性
-
点语法
box.style.width box.style.height box.style.top
得到带有单位的属性值,比如200px;但是,点语法有一个很致命的问题,跟在style后面的属性不能由外部传入。
比如:var h = 'height'; box.style.h = 300 + 'px'; 无法设置box的高度
-
下标语法:这种语法的好处是可以动态传递参数作为属性
比如:var h = 'height'; box.style[h] = 300 + 'px'; 进行设置box的高度
JS获取CSS的样式
- 问题
在开发中,我们想要获得CSS样式,通常采用:box.style.top、box.style.backgroundColor等,但是这种方式只能获得行内样式,无法获得业内样式或者外部样式表中的定义的属性,如何解决? - 解决
在IE和Opera浏览器中,使用:
在W3C标准浏览器中,使用:obj.currentStyle
window.getComputeStyle("元素","伪类") 注意:两个选项是必须的,没有伪类用null代替
- 兼容写法
getStyleAttr: function (obj, attr) { if (obj.currentStyle) { // IE 和 opera return obj.currentStyle[attr]; } else { return window.getComputedStyle(obj, null)[attr]; } },