以下代码在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/
答案 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” ),等等
你可以尝试
$('.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);
});