HTML要素の実際の幅と高さを取得するにはどうすればよいですか?

ブラウザの表示(ビューポート)で中央に配置したい<div>があるとします。そのためには、<div>の要素の幅と高さを計算する必要があります。

どのようにすればよいでしょうか?また、ブラウザの互換性についても教えてください。

ソリューション

.offsetWidth.offsetHeightプロパティを使用する必要があります。 これらは.style` ではなく、要素に属していることに注意してください。

var width = document.getElementById('foo').offsetWidth;

解説 (11)

*注)*******************。この回答は2008年に書かれたものです。当時、多くの人にとって最良のクロスブラウザソリューションは、本当にjQueryを使用することでした。もしあなたがjQueryを使用しているのであれば、この回答は良い方法です。もしあなたが他のフレームワークや純粋なJavaScriptを使用しているのであれば、おそらく受け入れられた答えが良いでしょう。

jQuery 1.2.6では、コアとなるCSS関数のうち、heightwidth(または、適宜outerHeightouterWidth)を使用することができます。

var height = $("#myDiv").height();
var width = $("#myDiv").width();

var docHeight = $(document).height();
var docWidth = $(document).width();
解説 (0)

element.offsetWidthとelement.offsetHeightは、前の投稿で提案されたように、実行する必要があります。

しかし、単にコンテンツを中央に配置したい場合は、もっと良い方法があります。xhtml strict DOCTYPEを使用していると仮定して、bodyタグにmargin:0,autoプロパティと必要な幅(px)を設定します。すると、コンテンツがページの中央に配置されます。

解説 (1)