みんなに聞いてきましたが、.width() と .height() ではなく .css('width') と .css('height') を使用する利点を誰も教えてくれません。
CSS をクエリすると、適用された値が、5px
または1em
それに割り当てられたサイズとして与えられます。
jQuery を使用すると、次のメソッドを使用できます。
.height
(要素の高さ、パディング、マージン、ボーダーなし)
.innerHeight
(要素の高さ + パディング)
.outerHeight
(要素の高さ + パディングとボーダー)
.outerHeight(true)
(要素の高さ + パディング + ボーダー + マージン)
.width
(要素の幅、パディング、マージン、ボーダーなし)
.innerWidth
(要素の幅 + パディング)
.outerWidth
(要素の幅 + パディングとボーダー)
.outerWidth(true)
(要素の幅 + パディング + ボーダー + マージン)
これらのメソッドはすべて、高さ/幅の単位をピクセルで表す数値のみを返します。
jQuery を使用する利点は、ブラウザー全体で、マージン、パディング、または境界線を無視/含めることができるため、正確な幅/高さをより詳細に制御できることです。
さらに、これらのメソッドは常に単位を単純な数値として返すため、測定自体について心配する必要がないため、前述のようにpx
、em
、 などを使用して計算する方が簡単です。
DEMO - 高さの方法のデモンストレーション (幅にも同じことが適用されます)
上記のデモでは、div を使用しています。
<div id="myDiv">My Div</div>
次の CSS を使用します。
div{
border: 1px solid blue;
padding: 5px;
margin: 10px;
}
このスクリプトの使用:
var $div = $("#myDiv");
var height = $div.height();
var heightWithPadding = $div.innerHeight();
var heightWithPaddingAndBorder = $div.outerHeight();
var heightWithPaddingAndBorderAndMargin = $div.outerHeight(true);
var $result = $("#result");
$result.append("height: " + height);
$result.append("<br />height with padding: " + heightWithPadding);
$result.append("<br />height with padding and borders: " + heightWithPaddingAndBorder);
$result.append("<br />height with padding and borders and margin: " + heightWithPaddingAndBorderAndMargin);
その結果、次のようになります。
height: 20
height with padding: 30
height with padding and borders: 32
height with padding and borders and margin: 52