特定のノードの親のスクロール可能な要素をリストする関数を作成し、このチェックを使用していました
( e.scrollWidth > e.clientWidth ) || ( e.scrollHeight > e.clientHeight )
<table>
開いていたページ (stackoverflow の質問) でテストしたところ、質問と回答の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 だけなのか、それとももっと具体的なものなのかはわかりません。