如何javascript获取css中的样式

html-css010

如何javascript获取css中的样式,第1张

使用css控制页面有4种方式,分别为行内样式(内联样式)、内嵌式、链接式、导入式。

行内样式(内联样式)即写在html标签中的style属性中,如<div style="width:100pxheight:100px"></div>

内嵌样式即写在style标签中,例如<style type="text/css">div{width:100pxheight:100px}</style>

链接式即为用link标签引入css文件,例如<link href="test.css" type="text/css" rel="stylesheet" />

导入式即为用import引入css文件,例如@import url("test.css")

如果想用javascript获取一个元素的样式信息,首先想到的应该是元素的style属性。但是元素的style属性仅仅代表了元素的内联样式,如果一个元素的部分样式信息写在内联样式中,一部分写在外部的css文件中,通过style属性是不能获取到元素的完整样式信息的。因此,需要使用元素的计算样式才获取元素的样式信息。

obj.style方法,这个方法只能JS只能获取写在html标签中的写在style属性中的值(style=”…”),看下面代码

XML/HTML代码

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>

<html xmlns=”http://www.w3.org/1999/xhtml“>

<head>

<meta http-equiv=”Content-Type” content=”text/htmlcharset=utf-8″ />

<title>JS获取CSS属性值</title>

<style type=”text/css”>

<!–

.ss{color:#cdcdcd}

–>

</style>

</head>

<body>

<div id=”css88″ class=”ss” style=”width:200pxheight:200pxbackground:#333333″>JS获取CSS属性值</div>

<script type=”text/javascript”>

alert(document.getElementById(“css88”).style.width)//200px

alert(document.getElementById(“css88”).style.color)//空白

</script>

</body>

</html>

上面这个例子对id为”css88″的div设置了2种烦事的样式,包括style和外部样式class。

从alert出来的信息可以看到,document.getElementById(“css88”).style方法获取不到class为ss的属性和值。

IE中使用的是obj.currentStyle方法,而FF是用的是getComputedStyle 方法。

另外一个方法是:

XML/HTML代码

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>

<html xmlns=”http://www.w3.org/1999/xhtml“>

<head>

<meta http-equiv=”Content-Type” content=”text/htmlcharset=utf-8″ />

<title>S获取CSS属性值</title>

<style type=”text/css”>

<!–

.ss{background:bluecolor:#cdcdcdwidth:200px}

–>

</style>

</head>

<body>

<p id=”qq” class=”ss” >sdf</p>

<script type=”text/javascript”>

function GetCurrentStyle (obj, prop) {

if (obj.currentStyle) {

return obj.currentStyle[prop]

}

else if (window.getComputedStyle) {

propprop = prop.replace (/([A-Z])/g, “-$1”)

propprop = prop.toLowerCase ()

return document.defaultView.getComputedStyle (obj,null)[prop]

}

return null

}

var dd=document.getElementById(“qq”)

alert(GetCurrentStyle(dd,”width”))

</script>

</body>

</html>

当然,如果您是引用外部的css文件同样适用。

另:可以将上面的方法简化为

JavaScript代码

function getDefaultStyle(obj,attribute){ // 返回最终样式函数,兼容IE和DOM,设置参数:元素对象、样式特性

return obj.currentStyle?obj.currentStyle[attribute]:document.defaultView.getComputedStyle(obj,false)[attribute]

}