javascript - div内溢出span的宽度,IE9

标签 javascript jquery html css internet-explorer

我需要查明 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)中,很容易检查跨度是否比 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;。请参阅下面我的回答。

最佳答案

span 的高度是 18px 作为文本的高度。当文本溢出 .wrapper div 时,span 的高度会自动增加。

    var height=$('.wrapper span').css("height").replace('px','');
    console.log(height);
    if(parseFloat(height) > 18){
        console.log("overflow occured");
    }

DEMO

关于javascript - div内溢出span的宽度,IE9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19270861/

相关文章:

javascript - 当我在 html 和 css 中向下滚动时,如何使图像位于菜单栏后面?

jquery - 菜单上的文字变得不可见

javascript - jQuery: anchor 滚动跳动

html - 垂直对齐 flex-box 和 flex-direction : column

html - CSS:div "float:middle"而不是 "float:left;"是否可以带 margin-left?

javascript - 在 Angularjs 中记住我的功能和 token

javascript - WebView 代码在 Android 4.4.2 (API 19) 模拟器上生成 Uncaught TypeError 和 Uncaught ReferenceError 错误

javascript - jQuery 触发器单击具有特定属性的第一个元素

javascript - str[0] 和 str.charAt(0) 的区别

javascript - Javascript 中的原生 64 位整数