伙计们一直在问,没有人能真正告诉我使用 .css('width') 和 .css('height') 而不是 .width() 和 .height() 的好处。
查询 CSS 将为您提供应用的值,如 in5px
或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