Puede hacerlo utilizando la función "orientación" de css media. De esta forma puede especificar estilos dependiendo de la orientación de la pantalla, sin relación con el tamaño de la pantalla. Puede encontrar la definición oficial de w3.org sobre esta función de medios here. Combinado con las especificaciones en developer.mozilla.org, esto explicará cómo funciona.
Presupuesto de w3.org sobre la función de medios 'orientación':
la función de medios 'orientación' es 'retrato' cuando el valor de la 'altura' medios característica es mayor que o igual al valor de la 'anchura' función de medios . De lo contrario, 'orientación' es 'paisaje'.
Una nota/cita de developer.mozilla.org acerca de la característica "orientación":
Nota: Este valor (es decir, vertical u horizontal) hace no corresponden a real orientación del dispositivo. Al abrir el teclado virtual en la mayoría de los dispositivos en orientación vertical, hará que la ventana gráfica sea más ancha que alta, lo que ocasionará que el navegador utilice estilos de paisaje en lugar de retrato.
Así que reiterar, no es en realidad la orientación de la pantalla que desencadena vertical u horizontal preguntas de los medios. ¡Sin embargo, es la relación entre la altura y el ancho de la pantalla!Debido a esto, también tiene sentido utilizar la "función de orientación" con dispositivos no móviles/táctiles, por lo que agregué una pequeña demostración para mostrar el comportamiento de estas consultas de medios.
JSFIDDLE DEMO(intente cambiar el tamaño de la ventana de observación)
Estas son las preguntas de los medios de representación que afectan a la orientación vertical y horizontal.
@media screen and (orientation:portrait) {
/* Portrait styles */
/*set width to 100px */
}
@media screen and (orientation:landscape) {
/* Landscape styles */
/* set width to 200px*/
}
+1 funciona muy bien! –
manera simple y elegante ... ¡los pulgares para arriba para usted! – saadk