2016-06-09 84 views
1

是否有人可以解释为什么当HTML是jQuery的宽度()和outerWidth()产生奇怪的结果

<div class="div">This is a normal DIV</div> 

jQuery的

$('.div').width("50%"); 

and 

$('.div').outerWidth("50%"); 

产生这种奇怪的结果?我曾与通常定位的DIV,绝对定位的DIV,并有和没有CSS

box-sizing: border-box; 

我得到压扁的DIV(即最小宽度)与outerWidth(“50%”)当边界框试过这种没有设置,并且当设置边框时宽度(“50%”)为的DIFF值为。 (FWIW,位置:绝对似乎没有什么区别)

https://jsfiddle.net/zk1gys7z/1/

+0

你应该可能读到'border-box' –

+0

看起来像jQuery中可能存在一个错误:https://github.com/jquery/jquery/issues/1712 – MSC

回答

0

我真的不能解释这是怎么回事那里JS,它并不总是似乎是将50%我看到了应用了8%,92%和其他奇怪值的样式。

我想你会得到你所要寻找的结果:

$('.div').css("width", "50%"); 

随着border box应用将需要填充进去,不,它将尺寸只是含量为50%(填充将是额外的)

+0

谢谢@Darvanen。现在我使用outerWidth()和border-box,但这是非常奇怪的行为,我希望有人仍然可以解释为什么会发生这种情况。 – MSC