2012-10-07 48 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的方式。