19

当您尝试获取元素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'
);
#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 个函数的情况下检索元素?

谢谢。

4

1 回答 1

22

请参阅错误 #13421(尽管这实际上不是错误)。

css()的文档说:

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

padding是这样一个属性,所以你确实必须使用paddingLeft,paddingRight等。

于 2013-03-19T10:50:26.113 回答