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

2022-08-30 02:31:10

我可以使用JavaScript来检查(无论滚动条如何)HTML元素是否溢出其内容?例如,具有小而固定大小的长 div,溢出属性设置为可见,并且元素上没有滚动条。


答案 1

通常,您可以比较 与 为了检测此...但是当溢出可见时,这些值将相同。因此,检测例程必须考虑到这一点: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 中测试。


答案 2

尝试比较/element.scrollHeightelement.scrollWidthelement.offsetHeight / element.offsetWidth


http://developer.mozilla.org/en/DOM/element.offsetWidth http://developer.mozilla.org/en/DOM/element.offsetHeight
http://developer.mozilla.org/en/DOM/element.scrollWidth
http://developer.mozilla.org/en/DOM/element.scrollHeight