2

我都用过$('#element').css('height', 10)$('#element').height(10)。哪种方法是更好的做法?还是他们都以完全相同的方式改变高度?

4

4 回答 4

2

不同之处在于,.css()您只是指定内联样式属性的值,而height()尝试设置框的高度。从文档

请注意, .height(value) 设置盒子的内容高度,而不考虑 CSS box-sizing 属性的值。

请参阅this fiddle以演示差异,并查看源代码的相关部分

于 2013-08-08T18:46:36.650 回答
1

除了您需要为 css() 指定“px”这一事实之外,看起来并没有太大的区别。就像评论中所说的m90(正如你在他们发布的小提琴中看到的那样),每个都受到border-box属性的不同影响(css()考虑了填充并将其包含在高度中,而height()没有),因此在决定使用哪个时也应考虑到这一点。

jQuery API 也有关于 height() 的说明:

Note that .height(value) sets the content height of the box regardless of the 
value of the CSS box-sizing property.

关于速度,我发现:http: //jsperf.com/jquery-css-height-vs-method-height/2

这是另一个通用链接:http: //jquerybyexample.blogspot.com/2010/08/width-vs-csswidth-and-height-vs.html

于 2013-08-08T18:57:30.087 回答
1

.height()这两者之间更好(原样),但仅仅是因为.css()不应该将整数作为参数......它应该是.css('height', '10px').

一般来说,我更喜欢使用.css()它,因为我确切地知道它要做什么(设置元素样式),而.height()以神秘的方式工作(即使简单,也不是很明显)。

此外.css(),您还可以将高度设置为'45%'or 'auto',而您无法使用.height()

于 2013-08-08T18:46:00.320 回答
0

JQuery height()文档中:

.css('height') 和 .height() 之间的区别在于后者返回一个无单位的像素值(例如,400),而前者返回一个单位完整的值(例如,400px)。当需要在数学计算中使用元素的高度时,建议使用 .height() 方法。

于 2013-08-08T18:23:47.560 回答