JS中如何获取CSS属性
发布网友
发布时间:2022-04-26 13:18
我来回答
共3个回答
热心网友
时间:2022-04-20 14:38
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/html; charset=utf-8″ />
<title>JS获取CSS属性值</title>
<style type=”text/css”>
<!–
.ss{color:#cdcdcd;}
–>
</style>
</head>
<body>
<div id=”css88″ class=”ss” style=”width:200px; height:200px; background:#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/html; charset=utf-8″ />
<title>S获取CSS属性值</title>
<style type=”text/css”>
<!–
.ss{background:blue; color:#cdcdcd; width: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];
}
热心网友
时间:2022-04-20 15:56
你得先抓取到某个应用css属性的对象,然后调用。
举个例子比较好说明。
比如以下的html代码:
======================================
<style type="text/css">
#testDiv{
width:1920px;
height:1080px;
background-color:#ff2626;
position:absolute;
top:0px;
left:0px;
}
</style>
<div id="testDiv"></div>
=======================================
然后用getElementById("testDiv").style来获取CSS,比如:
=======================================
//获取css的宽度
var divWidth = document.getElementById("testDiv").style.width;
//获取css高度
var divHeigh = document.getElementById("testDiv").style.height;
//获取css背景色
var divBgColor = document.getElementById("testDiv").style.backgroundColor;
=======================================
另外:获取的宽度和高度都是字符,如果要将宽度高度变成数值,可以这么用:
var divWidthInt = parseInt(divWidth);
var divHeightInt = parseInt(divHeight);
热心网友
时间:2022-04-20 17:31
这个是获取不到的,除非<div style="color:red;font-size:12px;"> 这样的内样式才可以得到。
document.getElementByTagName('h-table').style.cssText