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值,可以是auto1234px或类似的东西 – 不是获得最高位置的可靠方法。

也可以看看:

问题是,您的测试元素实际上没有动态定位。 看到这个问题: jQuery .css(“left”)在Chrome中返回“auto”而不是实际值