jQuery css('padding') - Firefox问题

zes*_*ssx 19 css firefox jquery padding

当你尝试获取一个元素时,似乎Firefox(至少v19.0.2)有jQuery css()函数的问题padding.

我使用时没有问题.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'
);
Run Code Online (Sandbox Code Playgroud)
#sample {
    border: 1px solid black;
    padding: 8px;
    margin: 10px;
}
#log {
    padding: 8px;
    margin: 10px;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Fré*_*idi 22

查看错误#13421(虽然这实际上不是一个错误).

css()的文档说:

速记CSS属性(例如margin,background,border)不被支持.例如,如果要检索渲染的边距,请使用:$(elem).css('marginTop')$(elem).css('marginRight'),依此类推.

padding是这样的属性,所以你的确需要使用paddingLeft,paddingRight等等.