Javascript jQuery.height()设置的高度超过了参数中指定的高度
我有两个较小的div和一个较大的div。我需要将较大div的Javascript jQuery.height()设置的高度超过了参数中指定的高度,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有两个较小的div和一个较大的div。我需要将较大div的高度调整为等于两个div的高度之和,加上它们之间的20px垂直边距。我是这样做的: <div id="team-container"> <div id="block1">Block 1</div> <div id="block2">Block 2</div> </div> <div id="team-details"></div
高度
调整为等于两个div的高度之和,加上它们之间的20px
垂直边距。我是这样做的:
<div id="team-container">
<div id="block1">Block 1</div>
<div id="block2">Block 2</div>
</div>
<div id="team-details"></div>
所以,问题是如果我调用
.height(546)代码>,它不会将高度设置为546px,但会将其设置为606px。但是如果我使用css设置高度,例如.css('height','546px')
,它工作正常,高度精确设置为546px。jQuery的height
函数实际上非常智能,在幕后进行了大量计算,包括边框、填充边距等
考虑使用$(“#团队详细信息”).css('height',contentHeight+'px')代码>。这是一种更直接的方法,如果您自己进行计算,它可能更适合这种情况
顺便说一下,+'px'
实际上是不需要的。从jQuery文档中:
调用.height(value)时,该值可以是字符串(数字)
和单位)或一个数字。如果仅为该值提供了一个数字,
jQuery采用像素单位
从css
函数文档()中:
当一个数字作为值传递时,jQuery将将其转换为
字符串并将px添加到该字符串的末尾。如果物业需要
以px以外的单位,将值转换为字符串并添加
在调用该方法之前,请使用适当的单位
还有一件事,如果您想进一步了解height
函数的工作原理,可以在这里查看:第333行到第353行。如您所见,它调用了augmentWidthOrHeight
函数,进行了一些严肃的计算和jQuery魔术。jQuery的height
函数实际上非常聪明,在幕后进行了大量的计算,涉及到边框、填充边距等
考虑使用$(“#团队详细信息”).css('height',contentHeight+'px')代码>。这是一种更直接的方法,如果您自己进行计算,它可能更适合这种情况
顺便说一下,+'px'
实际上是不需要的。从jQuery文档中:
调用.height(value)时,该值可以是字符串(数字)
和单位)或一个数字。如果仅为该值提供了一个数字,
jQuery采用像素单位
从css
函数文档()中:
当一个数字作为值传递时,jQuery将将其转换为
字符串并将px添加到该字符串的末尾。如果物业需要
以px以外的单位,将值转换为字符串并添加
在调用该方法之前,请使用适当的单位
还有一件事,如果您想进一步了解height
函数的工作原理,可以在这里查看:第333行到第353行。如您所见,它调用了augmentWidthOrHeight
函数,该函数执行了一些严肃的计算和jQuery魔术。您能在JSFIDLE中复制这个问题吗?您能为这个例子提供css吗?它位于引导选项卡组件中,我不知道如何准确地将其复制到JSFIDLE。我发现如果我使用$(“#team details”).css('height',contentHeight+'px')设置高度代码>你的HTML+JS工作得很好。所以我想你应该研究一下你的CSS或者一些你没有告诉我们的东西。除非你有其他事情(可能是CSS),否则你的代码工作得很好:你能在JSFIDLE中复制这个问题吗?你能为这个例子提供CSS吗?它在一个引导选项卡组件中,我不知道如何准确地将它复制到JSFIDLE。我发现如果我使用$(“#team details”).css('height',contentHeight+'px')设置高度代码>你的HTML+JS工作得很好。所以我想你应该看看你的CSS或者一些你没有告诉我们的东西。除非你有其他事情(可能是CSS),否则你的代码工作得很好:如果你使用.CSS()
来设置高度,你需要提供单位(px)。.height()
和.css(“height”)
之间的主要区别在于前者返回的值小于单位,这对计算非常有用。是的,没错。当我将其与@MelanciaUK提到的“px”一起使用时,它设置了正确的高度。但为什么会这样?@Mike我的评论可能会为你澄清。@MelanciaUK它澄清了单位的事情,但我打电话给.height(546)时不清楚为什么代码>,它将高度设置为606px?但是当我使用“css('height','546px')时,它工作得很好。@Mike-正如我在回答中所解释的,height
函数在实际进入DOM并更改元素的样式属性之前,会做很多额外的计算。您可以在此处了解更多信息:如果使用.css()
设置高度,则需要提供单位(px)。.height()
和.css(“height”)
之间的主要区别在于前者返回的值小于单位,这对计算非常有用。是的,没错。当我将其与@MelanciaUK提到的“px”一起使用时,它设置了正确的高度。但为什么会这样?@Mike我的评论可能会为你澄清。@MelanciaUK它澄清了单位的事情,但我打电话给.height(546)时不清楚为什么代码>,它将高度设置为606px?但是当我使用“css('height','546px')时,它工作得很好。@Mike-正如我在回答中所解释的,height
函数在实际进入DOM并更改元素的样式属性之前,会做很多额外的计算。您可以在此处阅读更多有关内容: