Javascript UL标签导致chrome中出现意外的clientHeight(或scrollHeight)

Javascript UL标签导致chrome中出现意外的clientHeight(或scrollHeight),javascript,html,Javascript,Html,我不期望下面的clientHeight和scrollHeight会有所不同。有什么我不知道的吗。我只能保证他们在铬上是不同的。不确定人们在不同的浏览器中体验到了什么 每当我在chrome中包含一个UL标签时,不管它放在被测量的包含元素中的什么位置,它都会抛出这些值 编辑:他们在Safari中的报告是平等的。那么我可以假设这是一个bug还是Safari错了? 默认情况下,两种浏览器中的边距填充等是相同的 这个问题不是关于它们之间的区别,我在不同的浏览器中得到不同的结果,也不是文档的任何其他答案所暗

我不期望下面的clientHeight和scrollHeight会有所不同。有什么我不知道的吗。我只能保证他们在铬上是不同的。不确定人们在不同的浏览器中体验到了什么

每当我在chrome中包含一个UL标签时,不管它放在被测量的包含元素中的什么位置,它都会抛出这些值

编辑:他们在Safari中的报告是平等的。那么我可以假设这是一个bug还是Safari错了? 默认情况下,两种浏览器中的边距填充等是相同的

这个问题不是关于它们之间的区别,我在不同的浏览器中得到不同的结果,也不是文档的任何其他答案所暗示的

在Safari中,它们都是18px,而在Chrome中,卷轴高度是34,卷轴高度是18

他们不应该都是34px,或者至少和18岁的Safari一样吗

console.logdocument.body.clientHeight; console.logdocument.body.scrollHeight;
test浏览器倾向于为边距和填充指定一些默认值,这些值有时会有所不同,从而使设计彼此不一致

这就是为什么开发人员倾向于使用这个简单的技巧来重置它们:

* {
  padding: 0;
  margin: 0
}

现在,如果您将其添加到CSS中,您将发现clientHeight和scrollHeight的值均为18px。

似乎您不需要的边距块默认属性会影响滚动高度。如果将边距块设置为零,则应看到相同的测量值

有趣的是,在这个代码片段中,大小仍然相差一个像素,但在codepen上测试时显示了相同的数字

console.logdocument.body.clientHeight; console.logdocument.body.scrollHeight; 保险商实验室{ 边距块结束:0; 边距块开始:0; }
请看这里:我确实知道它们之间的区别。我刚刚检查过,他们在萨法里的表现是一样的,这回答了你的问题吗?对不起,不,我非常理解他们之间的区别。我得到了意想不到的值,不同的值基于我使用的浏览器即使是默认值,主体内的边距似乎溢出了它,而不计入chrome。我只看到有UL标签的。在safari中,这对我来说更陌生,因为它根本不计算边距。我希望它们是一样的,不管ul标签上的边距是多少。这很有趣,你能给我更多关于css属性如何影响它的信息吗,我从未使用过这些属性,只是将它们设置为零以避免它们影响计算。您可以在上查看有关它们的更多信息。Chrome的元素有一些默认值。这就是我一直在寻找的信息:因为单靠利润率不应该放弃这些计算。我仍然认为这是ULs思想的独特之处。例如,H3标记具有类似的设置,但不会抛出任何错误calculations@rubixibuc对我来说,h3确实会让计算变得混乱