当您尝试获取元素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个函数?
感谢。
答案 0 :(得分:22)
请参阅bug #13421(虽然这实际上不是一个错误)。
css()的文档说:
简写CSS属性(例如
margin
,background
,border
)不是 支持的。例如,如果要检索渲染边距, 使用:$(elem).css('marginTop')
和$(elem).css('marginRight')
等等 上。
padding
是这样的属性,因此您确实必须使用paddingLeft
,paddingRight
等。