2013-03-19 20 views
18

Firefox(少なくともv19.0.2)には、要素のpaddingを取得しようとすると、jQueryのcss()関数に問題があるようです。jQuery CSS( 'パディング') - Firefoxの問題

.css('padding-left')を使用しても問題はありませんが、特にこのような単純な機能では、4行ではなく1行を書き込む方が良いでしょう。

ここに私の問題を表示するためのサンプルだ、クローム/ 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を取得するための回避策がありますか?

ありがとうございました。

答えて

21

bug #13421を参照してください(実際はバグではありません)。

css()のドキュメントは言う:

短縮形CSSプロパティ(例えばmarginbackgroundborder)がサポートされ ではありません。たとえば、レンダリングされたマージンを取得する場合は、 を使用します。$(elem).css('marginTop')$(elem).css('marginRight')、したがって がオンです。など

paddingこのような性質であるので、あなたが実際にpaddingLeftpaddingRightを使用する必要があります、

+1

ああは、ドキュメントにご説明に感謝し、それを逃しました。 – zessx