爲什麼在following code .height()返回95而不是100,而.width()返回200如預期的那樣?我使用Firefox 3.6.3。jQuery .width()和.height()奇怪的行爲
HTML:
<table><tr>
<td id="my"></td>
</tr></table>
<div id="log"></div>
CSS:
#my {
border: 5px solid red;
}
JS:
$("#my").width(200).height(100);
$("#log").append("Width = " + $("#my").width() + "<br />");
$("#log").append("Height = " + $("#my").height());
我試過.outerWidth()和.outerHeight(),也.innerWidth()和。 innerHeight(),但沒有一個返回預期結果:code example
但是,如果我設置了position: absolute
它看起來much better!
任何人都可以解釋這種行爲嗎?
在谷歌瀏覽器4.1.249.1064,我得到高度95和寬度195 – hwiechers 2010-05-18 15:05:44
這可能是瀏覽器的問題,或與其它CSS存在的問題。在Google Chrome 6.0.401.1開發中,我獲得了預期的結果。 http://jsbin.com/omefu/2 – Matchu 2010-05-18 15:06:08
@Misha:不一致性正在由表/ TD的默認填充造成的。見下面更新的答案:)。 – 2010-05-18 15:57:01