19

Firefox (少なくとも v19.0.2) では要素のpadding.

を使用する場合は問題ありませんが.css('padding-left')、特にこのような単純な機能では、4 行ではなく 1 行で記述した方がよいでしょう。

私の問題を示すサンプルを次に示します。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 プロパティ ( marginbackground、 などborder) はサポートされていません。たとえば、レンダリングされた余白を取得する場合は、 と などを使用$(elem).css('marginTop')$(elem).css('marginRight')ます。

paddingはそのようなプロパティなので、実際paddingLeftpaddingRight、 などを使用する必要があります。

于 2013-03-19T10:50:26.113 に答える