現在のスタイル情報を読み出す

説明

現在のスタイルシートの値を読み出すにはDOMに対応したブラウザであればgetPropertyValue()、Internet Explorerの場合はgetAttribute()を使って求めます。ここで得られる値は実際に表示されているものになります。ただし、座標値などは必ずしも数値を返すわけではなくautoなどを返すこともあります。また、数値の場合には単位が付いてくるため、数値として処理したい場合にはparseInt()またはparseFloat()を使って変換する必要があります。
JavaScriptテクニック ブック  詳しい解説などはJavaScriptテクニック ブックを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>現在のスタイル情報を読み出す</h1>
<form action="./readcss.cgi" method="get" id="mainForm" name="mainForm">
<input type="button" id="readButton" value="下のエリアの座標値を読み出す"><br>
</form>
<div id="box">
ここのエリアの座標値が表示されます。<br>
<span id="result">結果:</span>
</div>
</body>
</html>

window.onload = function(){
document.getElementById("readButton").onclick = function(){
var x = cssInfo.getValue("box", "left");
var y = cssInfo.getValue("box", "top");
var w = cssInfo.getValue("box", "width");
var h = cssInfo.getValue("box", "height");
document.getElementById("result").innerHTML = "座標("+x+","+y+")で幅は["+w+","+h+"]です";
}
}
var cssInfo = {
getValue : function(tagID, propName){
var divBox = document.getElementById(tagID);
if (document.defaultView){
var boxCSS = document.defaultView.getComputedStyle(divBox, null);
return boxCSS.getPropertyValue(propName);
}
if (divBox.currentStyle){
return divBox.currentStyle.getAttribute(propName);
}
}
}