【发布时间】:2013-10-16 17:49:59
【问题描述】:
我需要查明span 的内容是否溢出其父div。它在 Chrome 和 FF 中运行良好,但在 IE9 中运行良好。我有以下 HTML 结构:
<div class="wrapper">
<span>Dynamic text content, which may or may not overflow the parent</span>
</div>
使用以下 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 或任何其他版本。
编辑
我找到了一个解决方案,它检测溢出但需要跨度有display: block;。请参阅下面的答案。
【问题讨论】:
-
outerWidth()而不是width()怎么样? -
offsetWidth 和 offsetHeight
-
@RGraham outerWidth 有同样的问题 - 它只返回可见长度。
-
@ArunAravind 和 offsetWidth 一样,scrollWidth 也是如此。
-
我不确定是否满足您的要求,但请检查:msdn.microsoft.com/en-us/library/ie/ms531135(v=vs.85).aspx
标签: javascript jquery html css internet-explorer