異なるグリッドシステムを使用して責任のあるWebページを開発する際に、特定の要素がオーバーフローし、問題のサイズ/パディング/余白があり、ページを水平方向にスクロール可能にするという問題に直面することがあります。ウェブページ上で水平スクロールを引き起こす要素を追跡するには?
私は時にはポイント&クリック(chromeの要素ツールを選択)するのが難しいので、これらの要素を追跡するのは難しいと思います。
どのようにして誤った要素をすぐに特定できますか?
異なるグリッドシステムを使用して責任のあるWebページを開発する際に、特定の要素がオーバーフローし、問題のサイズ/パディング/余白があり、ページを水平方向にスクロール可能にするという問題に直面することがあります。ウェブページ上で水平スクロールを引き起こす要素を追跡するには?
私は時にはポイント&クリック(chromeの要素ツールを選択)するのが難しいので、これらの要素を追跡するのは難しいと思います。
どのようにして誤った要素をすぐに特定できますか?
解決策は、がwindow
のサイズより大きい場合、すべての要素を反復してconsole
に印刷することです。 Chromeで
、これらの要素の INGだろうハイライト彼らにページをクリックしてDOM
エクスプローラに表示し
コード:
// retrieve all elements
var allElements = document.querySelectorAll('*');
var bigElements =
// use the filter function to filter get only elements you need
Array.prototype.filter.call(
allElements,
// compares occupied width with window width
element => element.getBoundingClientRect().width > window.innerWidth
);
// print resulting elements
bigElements.forEach(element => console.log(element));
if (!bigElements.length) console.log('Yaay! All elements fit. ');
水平スクロールを削除するにはこのスニペットで要素が印刷されない限り、各コンポーネントのレイアウトを分析して変更します。
これはかなりきちんとしていますが、実際に問題を解決するわけではありません。幅がウィンドウの幅を超えている(明らかに)単一の要素しか表示されませんが、問題はより複雑になります(要素のグループ、マージンなど)。 –
Ctrl + Aキーを押してすべてを選択すると、要素が重なって見えることがあります。また、ブラウザの開発者コンソールを使用して、問題の要素を追跡するために水平バーが削除されるまで、コードのセクションを削除することもできます。以下のMatyasソリューションはかなり賢いですが、私はそれを試してみてください。 – WizardCoder