我需要确定span元素的内容是否超出了其父级
div
的范围。在Chrome和FF中,一切都运行良好,但在IE9中并不是这样。我的HTML结构如下:
<div class="wrapper">
<span>Dynamic text content, which may or may not overflow the parent</span>
</div>
With the following CSS:
.wrapper {
display: inline-block;
width: 80px;
height: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
在“真正的”浏览器中(即非IE浏览器),检查span是否比div宽很容易:
var innerSpan = $('.wrapper span');
var wrapperDiv = innerSpan.parent();
if (innerSpan.width() > wrapperDiv.width()) {
// Overflow has happened
}
但是在IE9中,调用
innerSpan.width()
只返回可见大小,这当然总是小于包装器的尺寸。我该如何检测文本是否在IE9中溢出?注:它只需要在IE9中运行,不需要在IE8、IE7或其他任何版本中运行。
编辑 我发现了一个解决方案,可以检测溢出,但需要将span的
display: block;
。请参见下面的答案。
outerWidth()
而不是仅使用width()
呢? - CodingIntrigue