css样式获取,style,currentStyle,getComputedStyle

对于css样式的获取问题,对于行内样式,我们可以用style来获取,但是对于内嵌和外部样式的话,style就心有余和力不足了。它是获取不到这些样式的

此时就只有currentStyle和getComputedStyle上阵了。

currentStyle是只兼容各种IE的,但是不兼容火狐,谷歌的,而getComputeStyle的话是可以兼容火狐,谷歌,和IE9+的。(以下测试均在谷歌和IE下)

对于行内样式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!-- <link href="test.css" rel="stylesheet"> -->
    <script type="text/javascript" src="test.js" defer="defer"></script>
    <title>Document</title>
</head>
<style type="text/css">
</style>
<body>
    <div class="wrap" style="
    width:100px;
    height:100px;
    background-color:black;">
    </div>
</body>
</html>

此时用这着三种方法:

var oWrap = document.getElementsByTagName("div")[0];
window.onload = function (){
    console.log(oWrap.style.width);
    console.log(oWrap.currentStyle.width);
    console.log(getComputedStyle(oWrap,null).width);
}

得到的结果是:

把报错的,也就是currentStyle注释掉,就会得到:

情理之中。因为currentStyle时不兼容谷歌的

然后改成内嵌样式的话:

结果也在意料之中:

再加上注释了,结果是:

外部样式表的话,结果也是一样的。

然后IE的话,

IE8的话是不支持getComputedStyle。而IE9+是支持的。

外部样式IE8:

外部样式IE9:

最后完全符合结果。

结论:

1.style只支持行内样式,对于其他样式引入方式一律不好用。

2.currentStyle和getComputedStyle支持各种样式引入方式。但存在兼容性问题。

3.currentStyle兼容IE,不兼容谷歌,火狐等浏览器,会报错。

4.getComputedStyle兼容谷歌,火狐,IE9+,不兼容IE8以下,包括IE8。

注意:

1.currentStyle的使用方式是:元素.currentStyle("样式名")或者元素.currentStyle.样式名。

2.getComputedStyle是全局的,使用方式是:getComputedStyle("元素",“伪类”)["样式名"]或者getComputedStyle("元素",“伪类”).样式名。

时间: 2024-10-08 21:36:33

css样式获取,style,currentStyle,getComputedStyle的相关文章

获取css样式,style、getComputedStyle及currentStyle的区别

样式表有三种: 内嵌样式:<div id="box" style="color:red">box</div>,style写在html中的为内嵌样式: 内联样式: <style> #box{    font-size: 25px;    background-color: #ccc; } </style> 在html页中直接写入<style></style>的为内联样式: 外部样式:<lin

用JS查看修改CSS样式(cssText,attribute(&#39;style&#39;),currentStyle,getComputedStyle)

CSS样式定义方法 大家都知道,在为HTML设置样式的时候,通常有三种方法:内联样式,内部样式表,外部样式表. 1.内联样式: 内联样式表就是在HTML元素中的行内直接添加style属性. 1 <div id="div1" style="width: 100px; height: 100px; background: black"> 2 </div> 2.内部.外部样式表: 内部样式表就是在<head>头部里有<style&

非内联css样式获取方法

css样式分为内联样式.内部样式和外部样式,然而object.style.xxx只能够获取内联样式的属性值,内部样式和外部样式的css样式获取不到 js获取方法使用document.defaultView.getComputedStyle().currentStyle() 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 &

style currentStyle getComputedStyle的区别和用法

先介绍下层叠样式表的三种形式: 1.内联样式,在html标签中style属性设置. <p style="color:#f90">内联样式</p> 2.嵌入样式,通过在head标签设置style标签添加样式. <style type="text/css"> .stuff{color:#f90;} </style> 3.外部样式,通过link标签引入外部样式 <link type="text/css&quo

js用currentStyle和getComputedStyle获取css样式(非行间)

用js的style属性可以获得html标签的样式,但是不能获取非行间样式.那么怎么用js获取css的非行间样式呢?在IE下可以用currentStyle,而在火狐下面我们需要用到getComputedStyle.下面是一个小示例: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/ht

JavaScript获取CSS样式的问题(1)

刚刚来到博客园!先分享一点初级的知识吧! 在学习javascript中,很多人对获取DOM元素的CSS样式感到很困惑,因为,对于行级样式,我们可以通过很简单的访问style属性就可以了得到,而对于<style>……</style>标签中定义的CSS样式和通过<link>载入的外部样式表,我们就无法用style属性访问得到,而且使用getAttribute()方法也无法获取到.以前在网上搜索了很久,其解决方案都不尽完美,回头通过自己查阅各种书籍,算是找到了比较完美的解决方

day26—JavaScript对CSS样式的获取和修改实践

转行学开发,代码100天--2018-04-11 通过JavaScript获取和修改HTML元素及CSS属性是其一个基本功能.对于CSS样式通常有行内样式,外部样式,内嵌样式之分. 如: 行内样式: <div id="box" style="width: 100px;height: 100px;background:#ccc"></div> 外部样式: <link rel="stylesheet" type=&quo

JS中获取CSS样式的方法

1.对于内联样式,可以直接使用ele.style.属性名(当然也可以用键值对的方式)获得.注意在CSS中单词之间用-连接,在JS中要用驼峰命名法 如 <div id="dv" style="width: 100px;height: 200px;background-color: pink; border: 1px solid green;"></div> <script> var dv = document.getElementB

js操纵css样式

操作元素的Style样式属性 1.格式对比: 演示代码: css样式属性: background-color color font font-family font-weight ..... JS样式属性: style.backgroundColor style.color style.font style.fontFamily style.fontWeight ..... 2.使用DOM的style对象 javascript样式表分为:内嵌式样式表:内联式样式表:外联式样式表. 操作元素的st