2017-06-11 6 views
0

Bei der Entwicklung von verantwortungsvollen Webseiten mit verschiedenen Grid-Systemen stehe ich manchmal vor dem Problem, dass bestimmte Elemente überlaufen, problematische Größen/Abstände/Ränder haben und die Seite horizontal scrollbar ist.Wie kann man Elemente ausfindig machen, die ein horizontales Scrollen auf einer Webseite verursachen?

Ich fand es manchmal mit dem Punkt & klicken (Element-Tool in Chrom auswählen) schwer, diese Elemente zu verfolgen, da - weiß nicht warum - sie sind manchmal nicht wählbar.

Wie könnte man schnell fehlerhafte Elemente identifizieren?

+0

Sie können manchmal überlappende Elemente erkennen, indem Sie STRG + A drücken, um alles auszuwählen. Sie können auch die Entwicklerkonsole des Browsers verwenden und Codeabschnitte löschen, bis die horizontale Leiste entfernt wurde, um das Problemelement aufzuspüren. Matyas Lösung unten ist jedoch ziemlich clever, ich werde sicher sein, es auszuprobieren. – WizardCoder

Antwort

0

Eine Lösung wäre, alle Elemente zu durchlaufen und sie an die console zu drucken, wenn ihre width größer ist als die der window.

In Chrom, Klick ing auf dieser Elemente würde Highlight sie auf der Seite und zeigen sie im DOM Explorer

Der Code:

// 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. ');

Um horizontale Scrolli loszuwerden ng man soll das Layout jeder Komponente analysieren und modifizieren, bis dieser Ausschnitt keine Elemente ausdruckt

+0

Dies ist ziemlich sauber, aber löst das Problem nicht wirklich - es zeigt nur einzelne Elemente, deren Breite die Fensterbreite überschreitet (offensichtlich), aber das Problem kann komplexer sein (Gruppen von Elementen, Ränder zum Beispiel). –

Verwandte Themen