使用jquery在Firefox中无法使用margin-left

时间:2014-01-24 08:21:27

标签: jquery firefox

以下代码在chrome中工作正常但在firefox中没有。警报显示chrome中的适当边距,而在Firefox中它始终显示0px

HTML:

<div class="center">14</div>

CSS:

.center {
    margin: 0 auto;
    width: 200px;
    background-color: #ccc;
}

JQuery的:  我正在使用最新的jQuery库

$(function(){
    var center = $('.center').css('margin-left');
    alert(center);
});

请参阅firefox和chrome中的jsfiddle: http://jsfiddle.net/vtbuz/2/

6 个答案:

答案 0 :(得分:6)

这是一个解决方案:

var center = $('.center').offset().left;

通过使用它,我们可以获得相对于文档的正确左侧位置。

答案 1 :(得分:3)

这是Firefox中的一个错误,所以很遗憾你现在无法修复它 Firefox返回0px而不是所需的输出。

http://bugs.jquery.com/ticket/11110
https://bugzilla.mozilla.org/show_bug.cgi?id=381328

答案 2 :(得分:0)

margin-left更改为marginLeft

<强> working demo

答案 3 :(得分:0)

尝试使用此方法在FF中定义边距:@ -moz-document url-prefix(){(css rules)}

答案 4 :(得分:0)

  

检索速记CSS属性(例如,边距,背景,   边框)虽然功能有些浏览器,但不能保证。   例如,如果要检索渲染的边框宽度,请使用:   $(elem).css(“borderTopWidth”),$(elem).css(“borderBottomWidth”   ),等等

http://api.jquery.com/css/

你可以尝试

$('.center').css('marginLeft');

答案 5 :(得分:0)

尝试以下

var center = $('.center').css("margin-left" : "200px");

如果你想要追溯css的价值;在结果周围使用parseInt()将其转换为数字值。

var center = parseInt($('.center').css("margin-left"));

最终解决方案

工作演示 - http://jsfiddle.net/tsspinal/zVr6W/1/

$(function(){
    var center = $('.center').css('marginLeft');
    alert(center);
    var left = ((parseInt($(window).width() - $('.center').width()) / 2)-8 + "px");
    alert(left);
});