Primero, establezca la altura mayor que el ancho. En teoría, esto es todo lo que debería necesitar. La especificación HTML5 sugiere tanto :
... el UA determinó la orientación del control a partir de la relación de las propiedades de altura y ancho especificadas en la hoja de estilo.
Opera lo implementó de esta manera, pero Opera ahora usa WebKit Blink . A día de hoy, ningún navegador implementa un control deslizante vertical basado únicamente en que la altura sea mayor que el ancho.
Independientemente, es necesario establecer una altura mayor que el ancho para obtener el diseño correcto entre los navegadores. La aplicación de relleno derecho e izquierdo también ayudará con el diseño y el posicionamiento.
Para Chrome, use -webkit-appearance: slider-vertical
.
Para IE, use writing-mode: bt-lr
.
Para Firefox, agregue un orient="vertical"
atributo al html. Lástima que lo hayan hecho de esta manera. Los estilos visuales deben controlarse mediante CSS, no 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" />
Descargos de responsabilidad:
Esta solución se basa en las implementaciones actuales del navegador de propiedades CSS aún no definidas o no finalizadas. Si tiene la intención de usarlo en su código, esté preparado para realizar ajustes en el código a medida que se lanzan nuevas versiones del navegador y se completan las recomendaciones de w3c.
MDN contiene una advertencia explícita contra el uso -webkit-appearance
en la web:
No utilice esta propiedad en sitios web: no solo no es estándar, sino que su comportamiento cambia de un navegador a otro. Incluso la palabra clave none
no tiene el mismo comportamiento en cada elemento del formulario en diferentes navegadores, y algunos no la admiten en absoluto.
El título de la demostración del control deslizante vertical en la documentación de IE indica erróneamente que la configuración de una altura mayor que el ancho mostrará un control deslizante de rango verticalmente, pero esto no funciona. En la sección de código , claramente no establece la altura ni el ancho, sino que usa writing-mode
. La writing-mode
propiedad, implementada por IE , es muy robusta. Lamentablemente, los valores definidos en el borrador de trabajo actual de la especificación al momento de escribir este artículo, son mucho más limitados. En caso de que las versiones futuras de IE abandonen el soporte de bt-lr
en favor de la propuesta actualmente vertical-lr
(que sería el equivalente de tb-lr
), el control deslizante se mostraría al revés. Lo más probable es que las versiones futuras extiendan lawriting-mode
aceptar nuevos valores en lugar de dejar de admitir valores existentes. Pero es bueno saber con qué estás lidiando.
-webkit-appearance
- No lo sabía. Lo cambia todo.