JavaScript で HTML 要素のスタイル値を取得する を使用してスタイル設定された HTML 要素からスタイル情報を取得するにはライブラリを使用せずにタグを使用すると、インライン スタイルではなく計算されたスタイルにアクセスできます。</p> <p><strong>ブラウザ間の互換性</strong></p> <p>IE は element.currentStyle プロパティを使用しますが、他のブラウザはDOM レベル 2 document.defaultView.getComputedStyle(el, null).getPropertyValue(styleProp) メソッドを実装します。この違いに対処するために、クロスブラウザ関数が提供されています。</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre>function getStyle(el, styleProp) { var value, defaultView = (el.ownerDocument || document).defaultView; // W3C standard way: if (defaultView && defaultView.getComputedStyle) { // Sanitize property name to CSS notation (e.g., font-Size) styleProp = styleProp.replace(/([A-Z])/g, "-").toLowerCase(); return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp); } else if (el.currentStyle) { // IE // Sanitize property name to camelCase styleProp = styleProp.replace(/\-(\w)/g, function(str, letter) { return letter.toUpperCase(); }); value = el.currentStyle[styleProp]; // Convert other units to pixels on IE if (/^\d+(em|pt|%|ex)?$/i.test(value)) { return (function(value) { var oldLeft = el.style.left, oldRsLeft = el.runtimeStyle.left; el.runtimeStyle.left = el.currentStyle.left; el.style.left = value || 0; value = el.style.pixelLeft + "px"; el.style.left = oldLeft; el.runtimeStyle.left = oldRsLeft; return value; })(value); } return value; } }</pre><div class="contentsignin">ログイン後にコピー</div></div> <p><strong>コード スニペットの使用例</strong></p> <p>提供されたコード スニペットの幅値を取得するには、次を使用します:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre>var boxWidth = getStyle(document.getElementById("box"), "width");</pre><div class="contentsignin">ログイン後にコピー</div></div>