Página principal » Codificación » Guía para las unidades CSS Viewport vw, vh, vmin, vmax

    Guía para las unidades CSS Viewport vw, vh, vmin, vmax

    Longitud de las vistas en porcentaje, o unidades de vista Como son más frecuentes, son unidades CSS sensibles que le permiten definir dimensiones. como un porcentaje del ancho o la longitud de la ventana gráfica. Las unidades de ventana gráfica pueden ser bastante útiles en los casos en que otras unidades de CSS sensibles, como los porcentajes, son difícil de hacer trabajar.

    A pesar de que Documentación del W3C en las vistas de las unidades contiene todo lo que se puede poner en teoría, no es muy detallado. Entonces, en este artículo, veremos cómo estas unidades CSS trabajo en practica.

    Altura de la ventana gráfica (vh) y ancho de la ventana gráfica (vw)

    W3C define viewport como “tamaño del bloque que contiene inicial”. En otras palabras, la vista es el área contenido dentro de la ventana del navegador o cualquier otra área de visualización en una pantalla.

    los vw y vh unidades representa el porcentaje del ancho y la altura de la ventana gráfica real. Pueden tomar un valor. entre 0 y 100 De acuerdo a las siguientes reglas:

     100vw = 100% del ancho del viewport 1vw = 1% del ancho del viewport 100vh = 100% del alto del viewport 1vh = 1% del alto del viewport 
    Diferencias a unidades porcentuales.

    Entonces, ¿en qué se diferencian las unidades de ventana gráfica de las unidades porcentuales? Unidades porcentuales Hereda el tamaño de su elemento padre. mientras que las unidades viewport no lo hacen. Las unidades de la ventana gráfica siempre se calculan como porcentaje del tamaño de la ventana gráfica. Como resultado, un elemento definido por unidades de viewport puede exceder el tamaño de su elemento principal.

    Ejemplo: secciones de pantalla completa

    Secciones de pantalla completa Son probablemente los casos de uso más conocidos de las unidades de viewport..

    los HTML es bastante simple; solo tenemos tres secciones una debajo de la otra y queremos que cada uno de ellos cubrir toda la pantalla (pero no más).

      

    En el CSS, usamos 100vh como un altura valor y 100% como anchura. No usamos el vw unidad aquí como por defecto, También se agregan barras de desplazamiento al tamaño de la ventana gráfica. Entonces, si usamos el ancho: 100vw; gobernar un barra de desplazamiento horizontal aparecería en el parte inferior de la ventana del navegador.

     * margen: 0; relleno: 0;  seccion background-size: cover; posición de fondo: centro; ancho: 100%; altura: 100vh;  .section-1 background-image: url ('https://assets.hongkiat.com/uploads/css-viewport-units-vw-vh-wmin-vmax/img1.jpg');  .section-2 background-image: url ('https://assets.hongkiat.com/uploads/css-viewport-units-vw-vh-wmin-vmax/img2.jpg');  .section-3 background-image: url ('https://assets.hongkiat.com/uploads/css-viewport-units-vw-vh-wmin-vmax/img3.jpg');  

    En la siguiente demostración de gif, puedes ver que vh es verdaderamente una unidad de respuesta.

    Según los documentos del W3C, lo anterior problema de la barra de desplazamiento horizontal se puede resolver añadiendo el desbordamiento: auto; gobernar al elemento raíz. Esta solución solo funciona parcialmente, aunque. La barra de desplazamiento horizontal, en efecto, desaparece pero anchura es todavía calculado en función del ancho de la ventana gráfica (la barra lateral incluida), por lo que los elementos serán ligeramente más grandes de lo que deberían ser.

    Yo diría, no me atrevería a usar el vw unidad en dimensionar elementos de pantalla completa por esta razón Ni siquiera lo necesitamos, como el ancho: 100%; La regla funciona perfectamente. Con diseños de pantalla completa, el verdadero desafío siempre ha sido cómo establecer un valor de altura adecuado y el vh unidad da una solución brillante para eso.

    Otros casos de uso

    Si usted está interesado en otros casos de uso vw y vh Lullabot tiene un gran artículo que enumera una Un puñado de ejemplos de la vida real. (Con demostraciones de Codepen), tales como:

    • Tarjetas de relación fija.
    • Manteniendo un elemento más corto que la pantalla..
    • Texto de escala.
    • Salir del contenedor.

    Opera.dev también tiene un breve tutorial sobre cómo puede aprovechar el vw unidad en creando tipografía responsiva.

    No solo se pueden usar unidades de vista en el anchura y altura Propiedades pero sobre cualquier otra. Por ejemplo, usted puede Establecer el tamaño de los rellenos y márgenes. utilizando la vw y vh unidades, también.

    Viewport min (vmin) & viewport max (vmax)

    los vmin y vmax unidades le permiten acceder a la Tamaño del lado más pequeño o más grande. de la vista, según las siguientes reglas:

     100vmin = 100vw o 100vh, el que sea menor 1vmin = 1vw o 1vh, el que sea menor 100vmax = 100vw o 100vh, el que sea mayor 1vmax = 1vw o 1vh, el que sea mayor 

    Así, en caso de una Orientación Vertical, 100vmin es igual a 100vw, como el viewport es más pequeño horizontalmente que verticalmente. Por la misma razón, 100vmax será igual a 100vh.

    Del mismo modo, en caso de una orientación horizontal, 100vmin es igual a 100vh, como el viewport es más pequeño verticalmente que horizontalmente. Y por supuesto, 100vmax será igual a 100vw aquí.

    Ejemplo: hacer textos de héroe legibles en cada pantalla

    los vmin y vmax Las unidades son mucho menos conocidas que vw y vh. Sin embargo, pueden ser excelentemente utilizados como sustituto de la orientación @medios de comunicación consultas. Por ejemplo, vmin y vmax Puede ser útil cuando tienes elementos que pueden parecer extraños. en diferentes relaciones de aspecto.

    El Nuevo Código tiene un gran tutorial en el que discuten cómo puedes mantener el texto del héroe legible en cada pantalla, usando el vmin unidad. Los textos de héroes son propensos a verse. demasiado pequeño en el móvil y demasiado grande en los monitores grandes.

    Aquí está la idea principal de su solución:

     h1 font-size: 20vmin; Familia tipográfica: Avenir, sans-serif; peso de la fuente: 900; text-align: center;  

    En la demo de Codepen, puedes ver cómo vmin Resuelve el problema de legibilidad de los textos de héroe. Acceder al “Página completa” ver en Codepen, entonces cambiar el tamaño de la ventana de su navegador Tanto horizontal como verticalmente para ver cómo cambia el texto del héroe..

    Soporte del navegador

    Como se puede ver en la tabla de CanIUse a continuación, el soporte del navegador es relativamente bueno para unidades de viewport. Sin embargo, tenga en cuenta que algunas versiones de IE y Edge no son compatibles vmax. Además, iOS 6 y 7 tienen un problema con el vh unidad, el cual fue arreglado en iOS 8.