确定 HTML 元素的内容是否溢出

新手上路,请多包涵

我可以使用 JavaScript 来检查(不考虑滚动条)一个 HTML 元素是否溢出了它的内容吗?例如,一个小而固定大小的长 div,溢出属性设置为可见,并且元素上没有滚动条。

原文由 andrei costache 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 542
2 个回答

通常,您可以将 client[Height|Width]scroll[Height|Width] 进行比较,以检测到这一点…但是当溢出可见时,值将相同。因此,检测例程必须考虑到这一点:

 // Determines if the passed element is overflowing its bounds,
// either vertically or horizontally.
// Will temporarily modify the "overflow" style to detect this
// if necessary.
function checkOverflow(el)
{
   var curOverflow = el.style.overflow;

   if ( !curOverflow || curOverflow === "visible" )
      el.style.overflow = "hidden";

   var isOverflowing = el.clientWidth < el.scrollWidth
      || el.clientHeight < el.scrollHeight;

   el.style.overflow = curOverflow;

   return isOverflowing;
}

在 FF3、FF40.0.2、IE6、Chrome 0.2.149.30 中测试。

原文由 Shog9 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题