Stellen Sie zuerst die Höhe größer als die Breite ein. Theoretisch ist dies alles, was Sie brauchen sollten. Die HTML5-Spezifikation schlägt Folgendes vor :
... bestimmte die UA die Ausrichtung des Steuerelements aus dem Verhältnis der vom Stylesheet angegebenen Höhen- und Breiteneigenschaften.
Opera hatte es auf diese Weise implementiert, aber Opera verwendet jetzt WebKit Blink . Bis heute implementiert kein Browser einen vertikalen Schieberegler, der ausschließlich darauf basiert, dass die Höhe größer als die Breite ist.
Unabhängig davon ist es erforderlich, die Höhe größer als die Breite einzustellen, um das richtige Layout zwischen den Browsern zu erzielen. Das Anwenden der linken und rechten Polsterung hilft auch beim Layout und bei der Positionierung.
Verwenden Sie für Chrome -webkit-appearance: slider-vertical
.
Verwenden Sie für IE writing-mode: bt-lr
.
Fügen Sie für Firefox orient="vertical"
dem HTML- Code ein Attribut hinzu. Schade, dass sie es so gemacht haben. Visuelle Stile sollten über CSS und nicht über HTML gesteuert werden.
input[type=range][orient=vertical]
{
writing-mode: bt-lr; /* IE */
-webkit-appearance: slider-vertical; /* WebKit */
width: 8px;
height: 175px;
padding: 0 5px;
}
<input type="range" orient="vertical" />
Haftungsausschluss:
Diese Lösung basiert auf aktuellen Browser-Implementierungen von noch nicht definierten oder nicht finalisierten CSS-Eigenschaften. Wenn Sie beabsichtigen, es in Ihrem Code zu verwenden, müssen Sie Code-Anpassungen vornehmen, wenn neuere Browserversionen veröffentlicht und die Empfehlungen von w3c abgeschlossen werden.
MDN enthält eine explizite Warnung vor der Verwendung -webkit-appearance
im Web:
Verwenden Sie diese Eigenschaft nicht auf Websites: Sie ist nicht nur nicht standardisiert, sondern ihr Verhalten ändert sich auch von einem Browser zum anderen. Sogar das Schlüsselwort none
hat nicht das gleiche Verhalten für jedes Formularelement in verschiedenen Browsern, und einige unterstützen es überhaupt nicht.
Die Beschriftung für die Demo des vertikalen Schiebereglers in der IE-Dokumentation zeigt fälschlicherweise an, dass beim Festlegen einer Höhe über der Breite ein Bereichsschieberegler vertikal angezeigt wird. Dies funktioniert jedoch nicht . Im Codeabschnitt wird weder Höhe noch Breite festgelegt, sondern stattdessen verwendet writing-mode
. Die vom IE implementiertewriting-mode
Eigenschaft ist sehr robust. Leider sind die Werte, die im aktuellen Arbeitsentwurf der Spezifikation zum Zeitpunkt dieses Schreibens definiert sind, viel begrenzter. Sollten zukünftige Versionen des IE die Unterstützung zugunsten des derzeit vorgeschlagenen (was dem entspricht ) fallen lassen, wird der Schieberegler verkehrt herum angezeigt. Höchstwahrscheinlich würden zukünftige Versionen diebt-lr
vertical-lr
tb-lr
writing-mode
neue Werte zu akzeptieren, anstatt die Unterstützung für vorhandene Werte zu streichen. Aber es ist gut zu wissen, womit Sie es zu tun haben.
-webkit-appearance
- das wusste ich nicht. Es ändert alles.!important
. Es ist immer besser, den Selektor zu stärken. Anstatt nur die.vert
Verwendung so etwas wieinput[type=range].vert
.Sie können dies mit CSS-Transformationen tun, achten Sie jedoch auf die Höhe / Breite des Containers. Möglicherweise müssen Sie es auch tiefer positionieren:
oder das 3D-Transformationsäquivalent:
Sie können dies auch verwenden, um die Richtung der Folie zu ändern, indem Sie sie für horizontal oder vertikal auf 180 Grad oder 90 Grad einstellen.
quelle
Ohne die Position auf absolut zu ändern, siehe unten. Dies unterstützt auch alle aktuellen Browser.
für sehr alten Browser, können Sie
-sand-transform: rotate(10deg);
von CSS Schmirgelpapieroder verwenden
Präfixauswahl wie
-ms-transform: rotate(270deg);
für IE9quelle
transform-origin: center left;
, dass der Schieberegler linksbündig und nicht mittig ausgerichtet ist.Quelle: http://twiggle-web-design.com/tutorials/Custom-Vertical-Input-Range-CSS3.html
quelle
Es ist sehr einfach. Ich hatte implementiert
-webkit-appearance: slider-vertical
, es funktionierte in Chorme, Firefox, Edgequelle