Najpierw ustaw wysokość większą niż szerokość. W teorii to wszystko, czego potrzebujesz. HTML5 Spec sugeruje tyle :
... UA określił orientację elementu sterującego na podstawie stosunku właściwości wysokości i szerokości określonych w arkuszu stylów.
Opera ma to zaimplementowane w ten sposób, ale Opera używa teraz WebKit Blink . Na dzień dzisiejszy żadna przeglądarka nie obsługuje pionowego suwaka opartego wyłącznie na wysokości większej niż szerokość.
Niezależnie od tego, ustawienie wysokości większej niż szerokość jest potrzebne, aby uzyskać właściwy układ między przeglądarkami. Zastosowanie lewej i prawej wyściółki również pomoże w ułożeniu i pozycjonowaniu.
W przypadku Chrome użyj -webkit-appearance: slider-vertical
.
W przypadku IE użyj writing-mode: bt-lr
.
W przypadku przeglądarki Firefox dodaj orient="vertical"
atrybut do pliku html. Szkoda, że zrobili to w ten sposób. Style wizualne powinny być kontrolowane przez CSS, a nie HTML.
input[type=range][orient=vertical]
{
writing-mode: bt-lr;
-webkit-appearance: slider-vertical;
width: 8px;
height: 175px;
padding: 0 5px;
}
<input type="range" orient="vertical" />
Zastrzeżenia:
To rozwiązanie jest oparte na aktualnych implementacjach przeglądarek o niezdefiniowanych lub niezakończonych właściwościach CSS. Jeśli zamierzasz użyć go w swoim kodzie, przygotuj się na wprowadzenie poprawek w kodzie w miarę wydawania nowszych wersji przeglądarek i wypełniania zaleceń w3c.
MDN zawiera wyraźne ostrzeżenie przed używaniem -webkit-appearance
w sieci:
Nie używaj tej właściwości w witrynach internetowych: nie tylko jest ona niestandardowa, ale jej zachowanie zmienia się z jednej przeglądarki na drugą. Nawet słowo kluczowe none
nie zachowuje się tak samo w każdym elemencie formularza w różnych przeglądarkach, a niektóre w ogóle go nie obsługują.
Podpis pokazujący pionowy suwak w dokumentacji IE błędnie wskazuje, że ustawienie wysokości większej niż szerokość spowoduje wyświetlenie suwaka zakresu w pionie, ale to nie działa. W sekcji kodu po prostu nie ustawia wysokości ani szerokości, a zamiast tego używa writing-mode
. writing-mode
Nieruchomość, jak realizowane przez IE , jest bardzo wytrzymała. Niestety, wartości określone w aktualnym roboczym projekcie specyfikacji w chwili pisania tego tekstu są znacznie bardziej ograniczone. Gdyby przyszłe wersje IE porzuciły obsługę bt-lr
na rzecz obecnie proponowanej vertical-lr
(co byłoby odpowiednikiem tb-lr
), suwak byłby wyświetlany do góry nogami. Najprawdopodobniej przyszłe wersje rozszerzą rozszerzeniewriting-mode
akceptować nowe wartości zamiast rezygnować z obsługi istniejących wartości. Ale dobrze jest wiedzieć, z czym masz do czynienia.
-webkit-appearance
- tego nie wiedziałem. Zmienia wszystko.