Verhindert, dass die Bildlaufleiste zur Seitenbreite in Chrome addiert wird
Ich habe ein kleines Problem versucht zu halten meine .html-Seiten auf eine einheitliche Breite auf Chrom,
Zum Beispiel habe ich eine Seite (1) mit einer Menge von Inhalten, die überläufe des Viewports (richtige Wort?) Höhe, so dass es eine vertikale scroll-Leiste auf Seite (1). Auf Seite (2) ich habe das gleiche layout (Menü, divs,...etc), aber weniger Inhalt, so dass kein vertikaler scroll-Balken.
Das problem ist, dass auf der Seite (1) der scroll-bars scheinen push-Elemente, leicht nach Links (adding-up, um die Breite?) während alles erscheint nun zentriert auf die Seite (2)
Ich bin noch Anfänger auf HTML/CSS/JS, und ich bin ziemlich überzeugt, dass dies nicht so schwierig, aber ich hatte kein Glück, herauszufinden, die Lösung. Es funktioniert wie vorgesehen auf IE10 und FireFox (nicht störende scroll-bars), habe ich nur Probleme in Chrome.
InformationsquelleAutor der Frage Acemad | 2013-08-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Bildlaufleiste Größe und wenden Sie dann eine Marge um die container.
Etwas wie dieses:
CSS entfernen Sie die h-scrollbar:
Versuchen Sie, einen Blick auf diese:
http://jsfiddle.net/NQAzt/
InformationsquelleAutor der Antwort Lwyrn
Alles, was Sie tun müssen, ist hinzuzufügen:
In der css-Datei haben Sie die scroller-egal ob Sie benötigt wird oder nicht, obwohl Sie gerade sein wird nicht in der Lage, um zu Blättern
Dies bedeutet, dass die Viewports wird die gleiche Breite für beide
InformationsquelleAutor der Antwort Hive7
Alter thread, aber immer noch relevant!
Dies funktioniert nur auf WebKit-Browsernaber ich mag es sehr.
Verhält sich wie
auto
auf anderen Browsern.Dadurch wird die Bildlaufleiste nur angezeigt, als overlaybeeinflussen also nicht die die Breite von Ihrem element!
InformationsquelleAutor der Antwort simonDos
Webkit-Browsern wie Safari und Chrome, subtrahieren Sie die scroll-bar-Breite vom sichtbaren Seite Breite bei der Berechnung width: 100% oder 100vw. Mehr unter DM Rutherford Scrollen und Seite Breite.
Versuchen Sie es mit
overflow-y: overlay
statt.InformationsquelleAutor der Antwort Kyle Dumovic
Fand ich, ich könnte hinzufügen
direkt auf meine css und es würde die scrollbar unsichtbar, aber immer noch erlauben, mich zu scrollen (Chrome zumindest). Gut für die, wenn Sie nicht wollen, eine störende Scrollbalken auf deiner Seite!
InformationsquelleAutor der Antwort fuzzy_logic_77
Wahrscheinlich
ist genau das, was Sie wollen.
InformationsquelleAutor der Antwort TranslucentCloud
Es scheint nicht meine andere Antwort ist die Arbeit Recht im moment (aber ich werde es weiter versuchen, bis es betriebsbereit ist).
Aber im Grunde, was Sie tun müssen, und was es versucht zu tun, die dynamisch ist, wird der Inhalt in der Breite geringfügig kleiner ist als der der Muttergesellschaft, der scrollbare Bereich.
So dass, wenn die Bildlaufleiste angezeigt wird es hat keinen Einfluss auf den Inhalt.
Diese BEISPIEL zeigt eine weitere hacky Art und Weise der Erreichung dieses Zieles durch hardcoding
width
s, anstatt zu versuchen, den browser zu tun es für uns überpadding
.Wenn es möglich ist, das ist die einfachste Lösung, wenn Sie nicht möchten, dass eine dauerhafte scrollbar.
InformationsquelleAutor der Antwort Hashbrown
EDIT: diese Antwort ist nicht ganz Recht im moment, siehe meine andere Antwort zu sehen, was war ich versucht, hier zu tun. Ich bin versucht, es zu beheben, aber wenn Sie bieten können, die Hilfe also in die Kommentare, danke!
Mit
padding-right
zu mildern wird das plötzliche auftauchen eines scrollbar -BEISPIEL
Wie Sie sehen können aus die Punkte, der text macht es an der gleichen Stelle in der Seite vor dem Umbruch, unabhängig davon, ob ein scrollbar vorhanden ist.
Dies ist, weil, wenn ein Scrollbalken eingeführt, der Polsterung verbirgt sich dahinter, so dass die scrollbar nicht "push" auf den text!
InformationsquelleAutor der Antwort Hashbrown
wo 300 px ist die Hälfte meiner dialog-Fenster Breite.
Dies ist eigentlich die einzige Sache, die für mich gearbeitet.
InformationsquelleAutor der Antwort Piotr Siatkowski
Für Container mit einer festen Breite eine Reine CSS cross-browser-Lösung erreicht werden kann durch umwickeln der Behälter in einen anderen div und die Anwendung der gleichen Breite, die beiden divs.
Klicken Sie hier, um ein Beispiel zu sehen auf Codepen
InformationsquelleAutor der Antwort Robbendebiene