当你试图获取一个元素的padding
时,火狐(至少是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>
我错过了什么吗?或者有没有不调用4个函数就能检索元素的padding
的变通方法?
谢谢。
发布于 2013-03-19 18:50:26
请参阅bug #13421 (尽管这实际上不是一个错误)。
css()的文档中写道:
不支持
速记CSS属性(例如
margin
、background
、border
)。例如,如果要检索呈现的边距,请使用:$(elem).css('marginTop')
和$(elem).css('marginRight')
,依此类推。
padding
就是这样一个属性,所以你确实需要使用paddingLeft
、paddingRight
等。
https://stackoverflow.com/questions/15497246
复制相似问题