2017-06-11 9 views
0

異なるグリッドシステムを使用して責任のあるWebページを開発する際に、特定の要素がオーバーフローし、問題のサイズ/パディング/余白があり、ページを水平方向にスクロール可能にするという問題に直面することがあります。ウェブページ上で水平スクロールを引き起こす要素を追跡するには?

私は時にはポイント&クリック(chromeの要素ツールを選択)するのが難しいので、これらの要素を追跡するのは難しいと思います。

どのようにして誤った要素をすぐに特定できますか?

+0

Ctrl + Aキーを押してすべてを選択すると、要素が重なって見えることがあります。また、ブラウザの開発者コンソールを使用して、問題の要素を追跡するために水平バーが削除されるまで、コードのセクションを削除することもできます。以下のMatyasソリューションはかなり賢いですが、私はそれを試してみてください。 – WizardCoder

答えて

0

解決策は、が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. ');

水平スクロールを削除するにはこのスニペットで要素が印刷されない限り、各コンポーネントのレイアウトを分析して変更します。

+0

これはかなりきちんとしていますが、実際に問題を解決するわけではありません。幅がウィンドウの幅を超えている(明らかに)単一の要素しか表示されませんが、問題はより複雑になります(要素のグループ、マージンなど)。 –

関連する問題