.width()返回4个像素太多

时间:2012-06-18 06:23:01

标签: javascript jquery

我有一个div:

<div class="frame" id="layer1"> ... </div>

带样式:

.frame {
    position: absolute;
    width: 380px;
    height: 280px;
    overflow: hidden;
    padding: 0;
    margin: 0;
    border: 0;
}
#layer1  { background-color: red; color: #fff; }

但这些是我的结果:

$(".frame").filter(":first").width(); // 384
$(".frame").filter(":first").outerWidth();  // 384
$(".frame").filter(":first").innerWidth();  // 384

我理解它们都是一样的,因为我的填充和边距是0,但这个默认的4px来自哪里?

1 个答案:

答案 0 :(得分:0)

它解决了,谢谢你的回复 - 它有所帮助!

还有别的东西在等式中添加了。感到愚蠢甚至问这个,但你的答案和问题确实帮助我深究它!我应该发布整个脚本:

var layers = $(".frame");
console.log(layers);

var totalWidth = layers.size() + layers.filter(":first").innerWidth();
console.log(totalWidth);

正如你所看到的问题在于layers.size() +,它应该是乘法而不是加法,我应该早点看到它。