正在制作一个函数来列出给定节点的父可滚动元素并使用此检查
( e.scrollWidth > e.clientWidth ) || ( e.scrollHeight > e.clientHeight )
当我在打开的页面上测试它时(stackoverflow 问题),我注意到问题和答案的<table>
and<tbody>
元素返回true
。<table>
页面上的其他元素和元素不会发生这种情况<tbody>
。
我最初的猜测是边框或边距,但似乎并非如此(如下面的代码所示,请在此页面上尝试)。
这是怎么回事,我将如何检查它?
var tbodys = document.getElementsByTagName('tbody'), css,
i = tbodys.length;
while( i-- > 0 ) console.log(
tbodys[i],
tbodys[i].scrollHeight > tbodys[i].clientHeight,
(css = window.getComputedStyle( tbodys[i] )).border,
css.margin,
css.padding,
css.position,
css.top
);
我不知道这是否适用于所有浏览器,仅适用于 Google Chrome 或更具体的浏览器。