2012-10-07 66 views
3

爲什麼屬性名稱不同:jQuery的CSS屬性名稱不一致

$(elem).css('padding-top') 

$(elem).css('marginTop') 

?它不應該是:

$(elem).css('margin-top') 

改爲?

+1

「舉個例子,如果你想取回保證金渲染,使用:$(ELEM)的.css( 'marginTop' )和$(elem).css('marginRight')等等。「請參閱 - http://api.jquery.com/css/ –

+0

對不起,沒有注意到。得到它了。 :) –

回答

4

您可以使用「camelCase」或「連字符分隔」形式的屬性。兩者都可以工作。請參閱jQuery docs for .css()

jQuery可以同樣解釋多字屬性的CSS和DOM格式。例如,jQuery可以理解並返回.css('background-color').css('backgroundColor')的正確值。

所以用你的例子,以下所有的將工作:

$(elem).css('marginTop') 
$(elem).css('margin-top') 
$(elem).css('paddingTop') 
$(elem).css('padding-top') 
+0

此處引用的聲明位於OP的引用內容的上方。 – BoltClock

+0

@BoltClock - 哈哈,就這樣。完美演示如何總是有助於正確閱讀文檔。 –

+0

謝謝。一定是錯過了那部分:p –

1

有兩件事。如何CSS看到它,以及如何使用JavaScript訪問它。在CSS中,它是:

#element {margin-top: ...;} 

而在JavaScript中,它是:

document.getElementById('element').style.marginTop 

並傳遞給css()功能起作用的是,無論是JavaScript的方式和CSS的方式。