jQuery css('padding') - Firefox问题

时间:2013-03-19 10:43:57

标签: jquery css firefox padding

当您尝试获取元素padding时,似乎Firefox(至少v19.0.2)存在jQuery css()函数的问题。

当我使用.css('padding-left')时,我没有遇到这个问题,但是编写一行而不是4行会很好,特别是在像这样的简单功能上。

以下是展示我的问题的示例,请比较Chrome / Firefox行为:

$('#log').append(
    'padding : '+        $('#sample').css('padding')+'\n'+
    'padding-top : '+    $('#sample').css('padding-top')+'\n'+
    'padding-bottom : '+ $('#sample').css('padding-bottom')+'\n'+
    'padding-left : '+   $('#sample').css('padding-left')+'\n'+
    'padding-right : '+  $('#sample').css('padding-right')+'\n'
);
#sample {
    border: 1px solid black;
    padding: 8px;
    margin: 10px;
}
#log {
    padding: 8px;
    margin: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="sample">Lorem ipsum</div>
<textarea id="log" rows="10" cols="50"></textarea>

我错过了什么吗?或者是否有一种解决方法来检索元素的padding而不调用4个函数?

感谢。

1 个答案:

答案 0 :(得分:22)

请参阅bug #13421(虽然这实际上不是一个错误)。

css()的文档说:

  

简写CSS属性(例如marginbackgroundborder)不是   支持的。例如,如果要检索渲染边距,   使用:$(elem).css('marginTop')$(elem).css('marginRight')等等   上。

padding是这样的属性,因此您确实必须使用paddingLeftpaddingRight等。