Kann man mit CSS die Bildlaufleiste ausblenden? Wie würden Sie dies tun?
Eine Erklärung, wie das funktioniert, wäre willkommen - mit der Sichtbarkeit von Eltern und Kindern zu spielen, um die Bildlaufleiste auszublenden, ist grauenhaft
Kann man mit CSS die Bildlaufleiste ausblenden? Wie würden Sie dies tun?
Browserübergreifender Ansatz zum Ausblenden der Bildlaufleiste.
Es wurde mit Edge, Chrome, Firefox und Safari getestet.
Blenden Sie die Bildlaufleiste aus, während Sie weiterhin mit dem Mausrad scrollen können!
/* Make parent invisible */
#parent {
visibility: hidden;
overflow: scroll;
}
/* Safari and Chrome specific style. Don't need to make parent invisible, because we can style WebKit scrollbars */
#parent:not(*:root) {
visibility: visible;
}
/* Make Safari and Chrome scrollbar invisible */
#parent::-webkit-scrollbar {
visibility: hidden;
}
/* Make the child visible */
#child {
visibility: visible;
}
Eine Erklärung, wie das funktioniert, wäre willkommen - mit der Sichtbarkeit von Eltern und Kindern zu spielen, um die Bildlaufleiste auszublenden, ist grauenhaft
@believesInSanta Ich habe Kommentare und Codepen hinzugefügt, um es besser zu erklären. Ich stimme nicht mit Ihrer Einschätzung überein, dass das Spiel mit der Sichtbarkeit ein schrecklicher Weg ist, um die Bildlaufleiste zu verstecken. Ich verstehe, dass es ein Hack ist, aber der richtige Weg, um diesen Effekt zu erreichen, wäre, wenn alle Browser eine Möglichkeit unterstützen, die Bildlaufleiste separat zu gestalten, wie es Chrome und Safari erlauben.
Wenn Sie möchten, dass der Bildlauf funktioniert, bevor Sie die Bildlaufleisten ausblenden, sollten Sie das Styling sie. Moderne Versionen von OS X und mobilen Betriebssystemen haben Bildlaufleisten, die zwar unpraktisch sind, um sie mit der Maus zu greifen, aber sehr schön und neutral sind.
Zum Ausblenden von Bildlaufleisten, eine Technik von John Kurlak funktioniert gut, außer beim Verlassen Firefox-Nutzer, die keine Touchpads haben, können nicht scrollen, es sei denn, sie eine Maus mit einem Rad haben, was sie wahrscheinlich haben, aber selbst dann können sie normalerweise nur vertikal scrollen.
Die Technik von John besteht aus drei Elementen:
Es muss möglich sein, die Größe des äußeren und des inneren Elements gleich zu setzen was die Verwendung von Prozentsätzen überflüssig macht, aber ich kann mir nichts anderes vorstellen, das nicht mit der richtigen Einstellung funktionieren würde.
Meine größte Sorge ist, ob alle Versionen von Browsern Bildlaufleisten so einstellen, dass sichtbaren überlaufenden Inhalt sichtbar zu machen. Ich habe es in aktuellen Browsern getestet, aber nicht mit älteren Browsern.
Verzeihen Sie meine SASS ;P
%size {
// set width and height
}
.outer {
// mask scrollbars of child
overflow: hidden;
// set mask size
@extend %size;
// has absolutely positioned child
position: relative;
}
.middle {
// always have scrollbars.
// don't use auto, it leaves vertical scrollbar showing
overflow: scroll;
// without absolute, the vertical scrollbar shows
position: absolute;
}
// prevent text selection from revealing scrollbar, which it only does on
// some webkit based browsers.
.middle::-webkit-scrollbar {
display: none;
}
.content {
// push scrollbars behind mask
@extend %size;
}
OS X ist 10.6.8. Windows ist Windows 7.
Unabhängige Anmerkung (was die Frage anbelangt). In diesem Fall sollten Sie @extend statt @include verwenden. Also statt @mixin{}
würden Sie %size{}
rufen Sie dann in den css-Selektoren @extend %size;
. Mixins werden typischerweise verwendet, wenn Sie Variablen einbeziehen, um ein Ergebnis zurückzugeben. Platzhalter (auch bekannt als @extend) sind für einfachen, sich wiederholenden Code wie diesen gedacht - wo keine "Funktion" benötigt wird.
Ich kann mich nicht mehr genau erinnern, da es schon ein paar Monate her ist, aber ich glaube, die Einstellung des Überlaufs auf dem Körper funktionierte in Chrome, aber nicht in Firefox (oder umgekehrt). Die Verwendung des HTML-Tags funktionierte jedoch bei beiden.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
5 Stimmen
@UweKeim, es gibt keinen Trick für IE11