小瑕疵:下拉框盖住搜索框-解决办法
老师讲的不错 就是最后提到的小瑕疵,下拉框盖住了搜索框,手动修改是不错,可是还是希望老师能讲清楚为什么造成这种情况,这样才能学透彻。<br>
查了相关资料,有了解决办法:<br>
jQuery中求控件宽度或高度有两种方式,返回结果是不同的,以宽度为例:<br>
(1)$("XXX").offset().width();<br>
(2)$("XXX").offset().outerWidth();<br>
例如一个div元素:<br>
< div id="box" class="box"></div><br>
它的css如下<br>
.box{width:500px;height:500px;border:1px solid #ccc;padding:10px}<br>
这个box除了500px宽度,还有1px边框和10px内边距。<br>
若用$("#box").offset().width(),求得的宽度是500px,没有内边距和边框宽度;<br>
若用$("#box").offset().outerWidth(),求得的宽度是522px,是算上内边距和边框宽度的。
所以下拉框会盖住搜索框是因为定位时下拉框的top应为:搜索框的offset().top加上搜索框的offset().outerWidth(),而不是offset().width(),因为在css设置中搜索框是有5px内边距的。