jquery $(’selector’)。css(’top’)为IE,firefox和Chrome返回不同的值
我使用jQuery $(’selector’)。css(’top’)获取最高值以帮助定位动态元素,我发现基于浏览器得到的结果不同。
如果选择器样式设置为top:5%
Firefox返回5%。
IE 7,8,9返回一个像素值,该值根据浏览器屏幕的宽度(哇)而变化。
Chrome返回’自动’。
在下面的测试html中,firefox返回:
m1 - 5% m2 - 100% m3 - 100px
IE 7,8,9返回:
m1 - 25px m2 - 509px m3 - 100px
如果我扩大屏幕,IE返回:
m1 - 49px m2 - 977px m3 - 100px
Chrome返回:
m1 - auto m2 - auto m3 - auto #m1 {top:5%;} #m2 {top:100%;} #m3 {top:100px;} CSS Test m1 m2 m3 function get_css() { var output = ""; $('.m').each(function(){ output += $(this).html() + ' - ' +$(this).css('top')+ "
"; }); $('#output').html(output); }
使用$('selector').offset().top
来获取top
位置的数值。
.css()
返回顶部位置的CSS值,可以是auto
, 1234px
或类似的东西 – 不是获得最高位置的可靠方法。
也可以看看:
问题是,您的测试元素实际上没有动态定位。 看到这个问题: jQuery .css(“left”)在Chrome中返回“auto”而不是实际值