2

我有一个跨度,里面有一些文字。

document.getElementById('span1').scrollWidth;

在 Firefox 上返回“100”作为滚动宽度,但 Chrome 只返回“0”。Chrome 不支持这个“scrollWidth”属性吗?任何其他不支持相同的浏览器?

如果我需要以像素为单位获取句子的长度,还有什么办法解决这个问题?(我一直使用“innerHTML”属性填充“span1”)

4

1 回答 1

2

Firefox 和 Chrome 对 css 和 js 的响应方式有很大不同。[ff=Firefox,c=Chrome,sw=scrollWidth]

关键点:

  1. sw 仅在元素的displayis notinline和时有效none
    ff 默认将 设置displayblock,而 c 将其设置为inline。所以你不会在c中得到sw。如果您无论如何都需要隐藏元素,只需使用:
    visibility:hidden而不display为 ff 和 c 设置。
  2. 如果你visibility在 c 中设置了,使用style.width元素而不是 sc。这行得通。

如果您仍然想在 chrome 上使用 sc 也可以隐藏span,您可以使用@AnthonyWJones 回答

了解用于自动换行和其他应用程序的 HTML 文本行的宽度

适用于 IE7、8、9、FF、Chrome。

于 2012-11-05T07:02:09.343 回答