jQuery.css() では、同じ結果を得るために次の 2 つの関数を使用できると言われています。
$(".element").css("marginLeft") = "200px";
$(".element").css("margin-left") = "200px";
marginLeft
ドキュメントでは次のように使用されているので、私は常にこれを使用しています。
短縮 CSS プロパティ (例: margin、background、border) はサポートされていません。たとえば、レンダリングされたマージンを取得する場合は、$(elem).css('marginTop') や $(elem).css('marginRight') などを使用します。
jQuery がmarginLeft
だけでなく も許可しているのはなぜですかmargin-left
? これは無意味に思えますし、CSS に変換するためにさらに多くのリソースを使用しますmargin-left
。
ベストアンサー1
jQuery の基盤となるコードはこれらの文字列を DOM に渡し、非常によく似た方法で CSS プロパティ名または DOM プロパティ名を指定できるようになります。
element.style.marginLeft = "10px";
は以下と同等です:
element.style["margin-left"] = "10px";
jQuery では、なぜ margin-left だけでなく marginLeft も許可されているのでしょうか? CSS margin-left に変換するのは無意味ですし、より多くのリソースを使用するように思えます。
jQueryは実際には何も特別なことをしていません。渡された文字列を変更したりプロキシしたりするかもしれません.css()
が、実際には仕事がないjQuery チームによって導入され、どちらの文字列も渡すことができるようになりました。DOM が作業を行うため、追加のリソースは使用されません。