Las unidades de medida establecen una longitud para un determinado elemento o tipografía. Existen dos tipos de medidas: absolutas y relativas.
Qué son las medidas absolutas
Las medidas absolutas son valores fijos, por lo que la medida no cambiará. La unidad absoluta más utilizada son los píxeles px, las demás son muy poco utilizadas, pero es bueno que las conozcas.
Unidad
Nombre
Equivalencia
px
píxeles
1 px = 1/96 in
cm
centímetros
1 cm = 96/2.54 px
mm
milímetros
1 mm = 1/10 cm
Q
cuartos de milímetros
1 Q = 1/4 mm
in
pulgadas
1 in = 2.54 cm = 96 px
pc
picas
1 pc = 1/6 in
pt
puntos
1 pt = 1/72 in
Qué son las medidas relativas
Las medidas relativas son valores variables, por lo que la medida depende de un valor externo. Se debe tener en cuidado con estas porque un pequeño cambio puede desencadenar tamaños muy elevados.
Unidad
Depende de
em
el elemento que lo contiene
rem
el elemento raíz
vw
1% del ancho de la pantalla (view width)
vh
1% de la altura de la pantalla (view height)
vmin
1% de la dimensión más pequeña de la pantalla
vman
1% de la dimensión más grande de la pantalla
ch
anchura del caracter “0” del elemento que lo contiene
lh
altura de la línea del elemento que lo contiene
Diferencia entre rem y em
La medida em depende del elemento que lo contiene, es decir, si un elemento tiene font-size de 20px, el valor de em es igual a 20px, el valor de 2em será de 40px y así sucesivamente.
La medida rem depende del elemento raíz, el valor del font-size del elemento raíz es de 16px, por lo tanto, el valor de 2rem es igual a 32px, y así sucesivamente.
Diferencia entre porcentajes y la anchura y altura de la pantalla
Los porcentajes representan el tamaño con respecto al total del elemento padre. Si el elemento padre tiene 20px, entonces el 100% será de 20px.
Por otra parte, las medidas de anchura vw y altura vh representan el tamaño con respecto al total de la pantalla. Si el elemento tiene un tamaño de 100vw será el 100 por ciento de la pantalla.
Si un elemento tiene todo el tamaño de la pantalla, entonces solamente en ese punto la medida 100% será igual a 100vw o 100vh.
Problema con las medidas de texto
Los navegadores tienen una opción para cambiar el tamaño del texto. Con medidas absolutas, el tamaño de la letra no cambiará, por lo que será un problema para el usuario.
Con medidas relativas, el tamaño cambiará con respecto a la fuente del elemento raíz. Por lo que estas son una buena opción para solucionar este problema de accesibilidad, en específico la medida rem.
Sin embargo, la medida rem equivale a 16px y puede ser confuso mientras utilices valores altos. Por lo que vamos a cambiar el valor del elemento de la raíz para que la medida rem sea igual a 10px.
En la etiqueta <html> cambia el valor de la propiedad font-size a 62.5%, resultado de una regla de tres: si 16px es igual al 100% entonces cuál será el porcentaje para 10px.
html {
font-size: 62.5%;
}
Con este cambio, la medida rem será igual a 10px, ahora los puedes utilizar sin problema y tus textos cambiarán según las preferencias de usuario.
Contribución creada por Andrés Guano (Platzi Contributor).
Aportes 109
Preguntas 21
Ordenar por:
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
👀 Hay un dilema donde algunas personas dicen que los px no deberían ser medidas absolutas porque dependen del DPI de la pantalla, aclaremos esto 👇:
.
Cuando hablamos de “medidas fijas” o “estáticas” nos referimos a que esta medida siempre va a medir lo mismo es una misma pantalla (sin importar su DPI). No en todas las pantallas 1px mide lo mismo, de hecho incluso cuando hacemos zoom el tamaño de ese píxel se modifica (mide más de 1px, aunque le hayamos puesto 1px).
.
☝ Entonces aclarando esta duda, hablamos de medidas estáticas cuando es una medida que, en una misma pantalla, siempre medirá lo mismo, sin depender de nadie.
.
Las medidas relativas dependen de algo para poder calcular su medida, por ejemplo, los porcentajes dependen del elemento padre, los emrem dependen del font-size, los vw y vh dependen del tamaño del viewport.
.
Básicamente esa es la diferencia entre medidas relativas y absolutas, de nuevo, ninguna es mejor que otra y todas tienen sus casos de uso 👀
.
Investigando sobre el comportamiento de vh en distintos navegadores que menciona la profe, encontré algo interesante.
Resulta que varios frontends se toparon con problemas en los iphones cuando intentan ocupar el 100% del viewport. Resulta que parte de su contenido se oculta detrás de la barra inferior del teléfono.
.
Para afrontar este problema, surgieron varias propuestas. Sin embargo, la solución de Matt Smith me pareció muy elegante. El propone indicar el valor -webkit-fill-available además del 100vh de esta manera…
body {
min-height: 100vh;
/* mobile viewport bug fix */
min-height: -webkit-fill-available;
}
html {
height: -webkit-fill-available;
}
Pueden leer más de este bug en este post. Aquí encuentran el artículo de la propuesta de Matt.
Es la unidad de medida que no va a cambiar sin importar el tamaño de la pantalla.
Una unidad absoluta puede ser los píxeles.
p {
font-size: 18px;
}
Medidas Relativas
Estás si pueden cambiar en relación con el dispositivo que lo estamos viendo.
Las unidades relativas pueden ser porcentajes, em (elemento), rem (root em o root elemento), max-width, max-height, min-width, min-height. Estas últimas varían basándonos en el tamaño de la pantalla.
main {
background-color: red;
width: 100%; /*Unidad relativa*/height: 500px;
}
em
EM es un acrónimo de elemento, va a tomar el tamaño de fuente que tenga el padre directo.
Por default un em es 16px que es de la etiqueta html.
Ejemplo
Yo al colocar 1.5em al tamaño de fuente de un elemento, este elemento pasa a tener un tamaño 50% más grande que la fuente que tiene el padre directo. Esto pasa cada vez que usamos la medida relativa em, los hijos toman como medidas de referencia las medidas que tiene su padre directo y esto puede causar confusiones.
EM no es de las mejores medidas.
REM
Esta medida relativa siempre va a tener referencia o correlación con el estilo que tenga la etiqueta root o el root de nuestro proyecto, que siempre es nuestra etiqueta html.
Por defecto el navegador le da a la etiqueta html un font-size de 16px.
Aun que coloquemos textos anidados veremos que no tendremos ningún cambio como pasaba antes con la medida em.
REM es menos confuso que EM.
Truco para usar rem
Debemos setear nuestra etiqueta html de la siguiente forma:
html {
font-size: 62.5%;
}
Con esto estamos estableciendo un tamaño de 10px al tamaño de fuente.
vw
Lo que hace esta unidad relativa es que toma como referencia el tamaño del viewport o pantalla.
vh
Lo que hace esta medida relativa es que toma como referencia el alto del viewport o pantalla.
Min-width y max-width
Una regla impórtate cuando los usamos es que necesitamos tener un width base que casi siempre es en porcentajes.
Lo que sude con estos dos que limitan el crecimiento del contenedor (max-width) o la reducción del contenedor (min-width). Una vez que llegue al límite que establecemos este contenedor deja de crecer o reducirse.
En este caso el selector crece como máximo hasta los 500 px y se reduce como máximo hasta los 320 px.
En este caso no necesitamos un height base. Se utiliza para evitar problemas de overflow.
Con min-height estamos diciendo que la altura mínima del contenedor va a ser X, pero si tiene contenido que exceda esa altura mínima que se expanda hasta donde el contenido deje de crecer.
Con max-height limitamos cuanto puede crecer el contenedor a lo alto.
Buenas prácticas
Es buena práctica utilizar el rem y em.
No es buena práctica tener un scroll horizontal en dispositivos mobiles.
Estilos que siempre debe estar al comienzo de nuestro archivo.css
Esto también te lo mencionan en el curso Definitivo de HTML y CSS. La verdad es que con ese curso y este complementas mucho los conocimientos de estos dos lenguajes.
Encontré una pregunta muy bien elaborada en stackoverflow al respecto. Brevemente dice que chrome y safari resuelven los porcentajes para el alto, en ítems flex, basados en el valor height del padre. Firefox y IE prioriza la propiedad heightde los padres.
Es como un trabalenguas, pero en la primera respuesta, la persona lo explica muy bien.
Si no quieres que se haga scroll del contenedor al usar vh o vw por los márgenes establecidos por el navegador, lo mejor siempre es resetear esto al inicio con el selector universal:
podemos normalizar el html con un archivo css muy popular llamado normalize.css asi mismo lo pueden buscar en google, eso ayudara a tener la misma apariencia en todos los navegadores
Usando 62.5% como el tamaño de rem y viendo en 2 navegadores diferentes (Edge y OperaGX) he podido comprobar que poseen el mismo tamaño predeterminado (16px), ya que he abierto el mismo archivo y poniendo los navegadores del mismo tamaño para evitar cualquier error posible, por consiguiente el alto también es el mismo ya que use 15 rem para los cuadraditos del archivo. Perdón por no poder comprobar en Safari, no tengo Mac 😦 .
¿Cómo funciona el VH en los diferentes navegadores?
Soporte en los distintos navegadores
Basándonos en la información mostrada en Can I use ( https://caniuse.com/viewport-units), podemos observar que la mayoría de los navegadores soportan estas unidades. Igualmente se pueden encontrar algunos bugs e irregularidades que debemos tener en cuenta al momento de usar estas unidades. Por ejemplo, IE9 ( En Internet Explorer9 ) soporta vm en vez de vmin y los exploradores IE10+/Edge no soportan vmax.
Algunas irregularidades son:
En Internet Explorer9 dentro de un iframe, las unidades se calcularan en el contexto de área de la ventana y no del iframe.
Internet Explorer9 no calcula las unidades correctamente cuando el explorador o sistema operativo esta ampliado.
En Internet Explorer 10 y 11 cuando se usan las unidades vw con 3D Transform puede generar extraños comportamientos.
iOS 7 Safari recalcula anchos establecidos en vh como vw, y altos en vw como vh, cuando la orientación cambia.
Internet Explorer 9 en print-mode interpreta vh como paginas. 30vh= 30paginas
Chrome, Safari & iOS Safari (ambos 6 y 7) no soporta estas unidades en anchos de bordes, valores de transform, sombras.
En Firefox hay un bug documentado donde 100vhno tiene efecto alguno cuando su disposición sea establecido como display:table.
Los em toman el tamaño de si padre directo.
.
Los rem siempre tienen la referencia al tamaño de fuente en el root de css.
.
vh y vw se refieren a todo el espacio y se usan de 0-100vh o 0-100vw.
ahorita conseguí un trabajo de front end gracias a este curso y es curioso que muchos de los lineamientos que siguen casi siempre se guían por porcentajes dentro de la pantalla, muy pocas veces utilizo rem espero eso cambie pronto
Las unidades se dividen en dos grupos: absolutas y relativas. Básicamente las unidades absolutas definen su valor de forma concreta y determinada, por ejemplo el centímetro.
En cambio las medidas relativas lo hacen tomando otro elemento de referencia y a veces su contexto. En el caso del porcentaje, por ejemplo, cuando se indica sobre el valor width, éste se toma respecto del elemento contenedor.
Es decir que, si tengo un contenedor que mide un ancho máximo de 1000 px y dentro coloco una <div> con un ancho de 25%, esta medida se tomará respecto de los 1000 px del contenedor, por lo tanto, en principio medirá 250px, pero si el contenedor se achica se achicará también.
Es una muy buena practica el use de rem para el font-size de nuestra pagina o aplicación web, básicamente por el tema de la accesibilidad, muchas personas no cuentan con una visión muy buena y tienen que agrandar las letras del navegador para poder ver bien las letras, sin embargo con el uso de pixeles (px) no se va a notar ningún cambio, debido a que es una medida que siempre va a tener su tamaño original.
-Los pixeles son unidades de medidas absolutas, fijas, no escalan ,siempre mantienen su tamaño, no son flexibles.
-El rem es una mdedida relativa (su valor siempre está referenciado respecto a otro valor)son medidas que escalan cuando se hace zoom
-El tamaño del texto predeterminado en los navegadores es 16px, por default el body tiene un font-size de 16px que es el 100% por lo que:
1rem = 16px
-Si modificamos el font-size que viene por default, para decir que un rem no sea igual a 16px sino que sea igual a 10px ,aplicando una regla de tres, es mas facil de manipular en cuanto a calculo:
16px = 100%
10px = ?
(10 * 100) / 16 = 62.5
Y colocamos
html {
font-size:62.5%;
}
con esto deducimos que un 1rem es igual a 10px
Es mala práctica asignar 62.5% al font-size del html, este artículo de Lupita code lo explica muy bien: https://lupitacode.medium.com/em-vs-rem-cuál-debería-usar-938376e92da0
.
Lo mejor es usar el 100% del font-size, o si estás trabajando con un preprocesador, desarrollar un mixin que te haga se cálculo y trabajar con px dentro del preprocesador para que cuando transpiles lo convierta a rem
El problema de estos cursos por ejemplo en mi caso que no se NADA pero NADA de programacion es que todo lo que enseña estefany se me hace paisaje osea no encuetro diferencia y menos en que me puede servir o como aplicarlo para obtener resultados o como darle manejo en la vida real. otra cosa es que en todos los videos hace los mismo pero con diferentes comandos. las personas que no saben nada y pagan este curso no quieren las cosas tecnicas pues si quiero lo tecnico me voy directo a google y lo busco nostros queremos ejercicios practicos y ejemplos de como aplicarlos. la verdad estoy desepcionado y arrepentido de comprar este curso ya que muchas cosas las he tenido que buscar en Youtube para entender para que sirven… si me preguntan no recomiendo pagar platzi es mejor aprender en youtube y google.
Es recomendable en cualquier situación el uso de medidas relativas (REM, EM) pues estas modificarán su tamaño en nuestra página cuando un usuario modifique el tamaño de las letras en la configuración de su navegador.
La explicación más corta y concisa que encontré fue la siguiente:
In other words, for percentage height to work on an in-flow child, the parent must have a set height.
Básicamente en Firexfox (desktop y mobile) para que el alto (height) funcione con porcentajes en los elementos hijos, el elemento padre debe tener definido un alto también.
El scroll horizontal se debe a que apareció la barra de scroll porque arriba está el párrafo y no se alcanza a mostrar todo el alto del container que es de 100vh. Entonces al poner 100vw le estamos diciendo que tome todo el ancho del viewport y eso incluye la barra de scroll, por eso es que se genera ese desplazamiento horizontal. La solución es poner un width 100% y así solo tomará el 100% del body que no incluye la barra de scroll. De esta manera, no se generará scroll horizontal.
Al fin!! jajajaj luego revisar los códigos de los compañeros unas 20 veces el video de la profe unas 20 veces encontré la solución a mis problemas subo mi Ejercicio.
Según este artículo, Safari Mobile toma parte del espacio del vh (espacio vertical) para poner su interface. Al parecer no es un bug, sino una interpretación diferente del tema vh.
Ese artículo ofrece 4 soluciones a este tema. Conviene darle una leída.
Espero que sea útil. 😄
Las dos tipos de medidas en CSS son las medidas absolutas y las medidas relativas
¿Qué caracteriza a las medidas absolutas?
Son independientes de las dimensiones de la pantalla y mantienen su tamaño constante, como los píxeles, centímetros y pulgadas
¿Cuál es el ejemplo principal de medida absoluta?
Es el uso de píxeles (px) para definir tamaños fijos de elementos en la pantalla
¿Qué son las medidas relativas?
Las medidas relativas son aquellas que dependen de factores como el tamaño de la pantalla o del elemento padre
¿Cómo afecta el zoom a las medidas absolutas?
Las medidas absolutas mantienen su tamaño constante incluso cuando se hace zoom en la página, a menos que la resolución de la pantalla cambie
¿Cómo se relacionan los porcentajes y los elementos?
Los porcentajes se adaptan al tamaño del elemento padre
¿Qué es un rem y cómo se calcula?
Un rem es una medida relativa que está relacionada con el tamaño de fuente del elemento raíz. Se calcula dividiendo el tamaño de fuente del elemento raíz por el valor del rem
¿Cuál es la ventaja de usar rem en el diseño?
En el diseño permite una forma más fácil y consistente de cambiar tamaños en relación con el tamaño de fuente base, en comparación con los cálculos complicados que se necesitan con píxeles
¿Cuáles son algunas unidades de medidas relativas?
Incluyen vw, vh, vmin y vmax
¿Qué significa la medida relativa vw y vh, y qué conforman?
(vw) viewport width, (vh) viewport high. Es el ancho y alto de la ventana de visualización del navegador, es decir, el área visible en la pantalla donde se muestra el contenido web
¿Cómo se le llama al conjunto de vw y vh?
Viewport (ventana de visualización del navegador
¿Qué hacen vmin y vmax?
vmin representa el valor mínimo entre el ancho y el alto del viewport. vmax representa el valor máximo entre el ancho y el alto del viewport
Son aquellos valores que nos permiten establecer el tamaño de un elemento o tipografía.
¿Qué tipos de unidades de medida existen?
Absolutas.
Relativas.
¿Cuáles son las medidas absolutas?
Px
Pt
Pc
In
Cm
Mm
¿Cuál es la medida absoluta más usada en desarrollo frontend?
Px - Pixels.
¿Cuáles son las medidas relativas?
Rem
Em
Vw
Vh
Vmin
Vmax
Ex
Ch
¿Qué son las unidades de medida absolutas?
Son medidas cuyo valor es absoluto por lo cual el tamaño de un elemento o tipografía no cambiará.
¿Qué son las unidades de medida relativas?
Son medidas cuyo valor puede varias ya que su valor depende de factores externos.
¿Por qué debemos de tener cuidado al usar las medidas relativas?
Porque si no tenemos cuidado con el uso de estas, todos los tamaños de nuestros elementos pueden verse alterados con un único cambio.
¿Cuál es la diferencia entre las medidas relativas rem y em?
La medida em depende del tamaño que tenga el elemento contenedor, mientras que la medida rem únicamente depende del tamaño que tenga el elemento raíz, es decir, el elemento <html>.
¿Cuál es la diferencia que hay entre las medidas relativas de porcentaje, Vh y Vw?
Las medidas de porcentaje dependen del tamaño que le asignemos a un contenedor padre, por ejemplo, si nuestro contenedor padre le asignamos un valor absoluto de 20px y a uno de sus elementos hijos le decimos que tenga un width de 50% esto significa que el elemento hijo tendrá un width de 10px.
Por el lado de las medidas Vh y Vw son determinadas por el tamaño de la pantalla, es decir, si decimos que el width de un elemento sea de 100vw esté ocupará el 100% del ancho de la pantalla.
¿Cómo podemos usar de manera correcta la medida rem para dar un tamaño relativo a los textos?
Lo que se recomienda es que asignemos al elemento <html> un tamaño de fuente del 62.5% de la siguiente manera:
html
{
font-size: 62.5%;
}
Esto lo hacemos con el fin de que cuando queramos asignar un tamaño a los textos con la medida rem simplemente tengamos que multiplicar el valor que queremos por 10, para asi poder usarlos como si fueran pixeles. Por ejemplo:
html
{
font-size: 62.5%;
}
p
{
font-size: 1rem;
}
Cómo vemos en este ejemplo lo que estamos haciendo es dar un tamaño de texto a todos los elemento p de 10px.
No cambian de tamaño por ningún motivo, en caso de que la pantalla sea más pequeña que la medida establecida se generar un overflow (scroll tanto horizontal y/o vertical)
Unidad
Nombre
Equivalencia
px
píxeles
1 px = 1/96 in
cm
centímetros
1 cm = 96/2.54 px
mm
milímetros
1 mm = 1/10 cm
Q
cuartos de milímetros
1 Q = 1/4 mm
in
pulgadas
1 in = 2.54 cm = 96 px
pc
picas
1 pc = 1/6 in
pt
puntos
1 pt = 1/72 in
Relativas
Cambian de tamaña dependiendo de un externo (tamaño del contenedor o tamaño de la pantalla).
Unidad
Depende de
em
El elemento que lo contiene
rem
El elemento raíz :root o <html>
vw
1% del ancho de la pantalla (view width)
vh
1% de la altura de la pantalla (view height)
vmin
1% de la dimensión más pequeña de la pantalla
vman
1% de la dimensión más grande de la pantalla
ch
Anchura del carácter “0” del elemento que lo contiene
lh
Altura de la línea del elemento que lo contiene
%
em: Toma el tamaño del padre directo en donde se haya declarado un font-size.
nota: Al tomar el tamaño del padre directo se puede generar un crecimiento desmedido.
div {
font-size: 16px;
}
/* output: 16px */divdiv {
font-size: 1.5em;
}
/* output: 24px - Toma como base el tamaño de su padre 16px*/divdivdiv {
font-size: 1.5em;
}
/* output: 32px - Toma como base el tamaño de su padre 24px*/
rem: Medida calculada a partir del “agent-user”
1rem === 16px (por default).
El valor de rem puede ser modificado dentro de la etiqueta <html> o :root
Truco: Usado para que 1.6 rem === 16px
:root {
font-size: 62.5%; /* 1rem === 10px*/
}
vw (viewport width): Toma como base le ancho de la pantalla.
1vw === 1% del ancho del área de visualización.
Si es responsivo
hw (viewport height): Toma como base le alto de la pantalla.
1vw === 1% del alto del área de visualización.
Si es responsivo
max-width: Estable el máximo width que puede alcanzar un elemento.
nota: Normalmente trabaja con un width base.
min-width: Estable el mínimo width que puede alcanzar un elemento.
nota: Normalmente trabaja con un width base.
max-height: Estable el máximo alto que puede alcanzar un elemento.
nota:max-height ≠ height para el DOM “visualmente es igual”
%: En caso de fuentes toman como medida a calcular el valor declaro en el :root que es de 16px.
min-height: Estable el mínimo alto que puede alcanzar un elemento.
nota:min-height ≠ height para el DOM “visualmente es igual”
Gracias a este curso he podido tanto repasar cosas como aprender otras que en mi ignorancia había pasado por alto. En 3 años que llevo de aprender desarrollo Frontend no había aprendido a usar los rem, es un sentimiento de culpa que he tenido siempre, pero ahora ya lo se y siento que ya lo domino.
Si configuraron su navegador con otro tamaño de fuente por problemas visuales, como fue mi caso (tenía 18px), recuerden que esa será la medida del tamaño de fuente del html y no de 16px. Por lo tanto Rem tomará ese valor como referencia.
Les dejo mis apuntes, en vez de cuadernos o libretas, uso mejor los comentarios.
<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Document</title><style>/*Medidas Absoulutas: El tamaño no cambiará. (px, mm, cm, in, pc, pt).
Medidas Relativas: El tamaño va a variar. (rem, em, vw, vh, vmin, vmax, ex, ch)*//*Medidas Absolutas
Es la unidad de medida que no va a cambiar sin importar el tamaño de la pantalla.
Una unidad absoluta puede ser los píxeles*//*Medidas Relativas
Estás si pueden cambiar en relación con el dispositivo que lo estamos viendo.
Las unidades relativas pueden ser porcentajes, em (elemento), rem (root em o root elemento), max-width, max-height, min-width, min-height. Estas últimas varían basándonos en el tamaño de la pantalla.
main {*/html{
font-size: 100%;/*es para que el rem equivalga a 16px,
pero si ponemos el font size en 62.5, equivaldra a 10px
esto es para que el calculo de medida sea mas facil*/
}
body{
margin: 0;/*es para que vh y wh tengan margen cero*/
}
div{
width: 100px;
height: 100px;
background: blue;
}
p{
font-size: 1rem;/* 1 rem equivale a 16px
y se puede aumentar*/
}
.container{
width: 100px; /**wh hace lo mismo que vh pero en width/
height: 100vh;/*la unidad de medida vh que solo se aplica en heigth
sirve para alargar un elemento y se hace un scroll*/background-color: lightblue;
}
</style></head><body><div>platzi</div><p>Master</p><divclass="container"></div></body></html>
El segundo método es utilizando la unidad vh. Seguramente ya sabréis que para determinar el «tamaño» de un elemento en css podemos utilizar unidades como los píxeles, puntos, porcentajes o incluso em. Pero quizá no hayáis oído hablar de las unidades vh y vw. Una unidad vh (viewport height) equivale a un 1% de la altura del viewport (el total de la pantalla del dispositivo que muestre nuestra web). 1vh = 1% del total de la pantalla, 100vh = 100%. Como os habréis imaginado, la unidad vw es el equivalente para el ancho.
Usando estas unidades podemos determinar una altura fullheight de la siguiente manera:
.fullHeight {
height: 100vh;
}
El problema de este método es su compatibilidad con los navegadores. Actualmente las medidas en vh y vw funcionan en: ie9+, Chrome 34+, Firefox 19+, Safari 7+, Android 4.4+ y iOS 6+. Debemos ser conscientes además de que pueden causar problemas tanto en Safari y Chrome de iOS 6 y 7.
em y rem se basan en el valor de font-size, se comportan o se traducen a valores de pixel. Si ponemos 1em o 1rem como valor, el navegador va a convertir ese valor en valor pixel(px). em son relativas al font-size del elemento padre rem son relativas al font-size del elemento raiz (html)
Cuando usar em y rem en CSS?
Pues los dos van de la mano al momento de responsive design, usabilidad y accesibilidad. Ahora dependerá todo de tu proyecto o preferencia.
Recuerda también que:
em tiene valor de herencia al padre y este puede ocasionar ciertos conflictos en ciertas partes de tu proyecto.
rem se basa en html y esto puede proporcionar un accesibilidad por parte del usuario.
Se puede cambiar el font-size al 62.5% = 10px para tener un calculo fácil al utilizar em o rem, pero esto dificulta al navegador y a nosotros porq duplicaremos el código ya que el tamaño de fuente será pequeño.
Se me olvidó la regla del 3 😦. Y yo que sacaba 4.6 en los parciales de análisis numérico y ecuaciones diferenciales.
aclaro que la nota máxima era de 5 :v
¿Cuándo utilizar em en lugar de rem? 🤔
Cuando quieras algo relativo al tamaño de fuente del mismo elemento o de cualquier elemento padre del que heredará.
También ayuda a la accesibilidad ya que el usuario podrá cambiar el tamaño de tu página web y la letra no sera un problema
Usando estas unidades podemos determinar una altura fullheight de la siguiente manera:
.fullHeight {
height: 100vh;
}
El problema de este método es su compatibilidad con los navegadores. Actualmente las medidas en vh y vw funcionan en: ie9+, Chrome 34+, Firefox 19+, Safari 7+, Android 4.4+ y iOS 6+. Debemos ser conscientes además de que pueden causar problemas tanto en Safari y Chrome de iOS 6 y 7.
. lee aqui el artículo completo
Unidades de medida:
1rem = 16px
font-size: 3.2rem;
tamaño de fuente
font-size: 62.5%; hace que cada rem equivalga a 10px
Detalles de width: 100vw; y height: 100vh;
width: 100vw;: Establece el ancho del elemento al 100% del ancho de la ventana gráfica.
vw (Viewport Width): Unidad que representa el 1% del ancho de la ventana gráfica.
100vw significa que el ancho del elemento será igual al 100% del ancho total de la ventana gráfica.
height: 100vh;: Establece la altura del elemento al 100% de la altura de la ventana gráfica.
vh (Viewport Height): Unidad que representa el 1% de la altura de la ventana gráfica.
100vh significa que la altura del elemento será igual al 100% de la altura total de la ventana gráfica.
La tarea:
Y segun *ChatGPT-4o*
En Chrome, la unidad `vh` puede incluir la barra de navegación visible, causando variaciones en la altura del viewport al hacer scroll, mientras que en Safari, especialmente en iOS, `vh` puede calcularse de dos maneras: incluyendo o excluyendo la barra de herramientas. Safari también permite usar `svh` (Small Viewport Height) para excluir la barra de herramientas del cálculo de altura. Esto puede llevar a inconsistencias en cómo se muestra el 100% de la pantalla entre los dos navegadores.
En conclusion, se incluyen barras de navegacion y herramientas, y debes modificar los tamaños en ambos navegadores
No entendí muy bien la tarea, pero sé que el height 100% en cualquier navegador no funciona igual que width 100% (ocupa todo el ancho de la pantalla) si no que depende de la medida del contenedor padre. Si no hay un padre con alto declarado entonces height 100% no tendrá ningún efecto.
Quiero que te imagines que empiezas a perder tu vista y ahora necesitas las letras más grandes 👀 lo más grande posible 👀, entonces vas a tu navegador y en tu tamaño de fuente seleccionas las opción de ✅MUY GRANDE✅. Entonces regresas a la pagina web y no ha crecido mucho que digamos 😕, estas triste muy triste pero recuerdas 💡 que eres desarrollador, vas al html de la pagina web donde tienes problemas y eliminas del html de la pagina web, esta propiedad ❌
html {
font-size: 62.5%;
}
Okay eres feliz 😄 nuevamente, ahora ves todo más grande. A continuación te dejo algunas recomendaciones
✅RECOMENDACIÓN✅
El alto de un elemento en CSS se puede definir en porcentajes, pero el resultado puede variar dependiendo del navegador que se esté utilizando. Esto se debe a que cada navegador tiene su propia forma de interpretar las especificaciones de CSS y puede haber diferencias en la forma en que se calcula el alto de un elemento. En general, los navegadores modernos como Chrome y Safari deberían tener una interpretación similar de las especificaciones de CSS y no debería haber grandes diferencias en la forma en que manejan el alto de un elemento. Sin embargo, siempre es una buena práctica probar el diseño en diferentes navegadores para asegurarse de que se vea bien en todos ellos.
Hay que tener cuidado con el VW y VH, porque estos toman las dimensiones totales del display del navegador, y aquí viene lo importante, incluyendo los sliders, verticales para VW y horizontales para VH
Hola señor Dev de platzi, la siguiente s epuede tomar como sugerencia, me gustaria que la parte de los comentarios de las clases aportes o preguntas, pudiesen tener una opción de Pop up, para que se agranden los comentarios y que ocupen el centro de la pantalla, ya que muchas veces la información que se poste aquí, tiene mucho valor complementario a las clases Gracias
Las unidades de medida en css se utilizan para definir el tamaño de los elementos, se clasifican en 2 Absolutas y Relativas.
Absolutas
Las medidas absolutas definen un tamaño que nunca va a cambiar aunque el elemento contenedor si cambie, el tamaño va a ser siempre fijo, un ejemplo son las medidas en pixeles px.
Relativas
Las medidas relativas como su nombre lo dice, son relativas a algo, ya sea al elemento que los contiene, al body o al html, su tamaño varía si los tamaños de estos elementos varían, un ejemplo son las medidas em que son relativas al body y las medidas rem que son relativas al html
Unidades de medida relativas
Las unidades de medida en CSS de tipo relativo dependen del elemento o factor al que hagan referencia. Aunque pueden ser inicialmente más complejas, algunos prefieren las unidades de medida relativas porque los tamaños de los elementos dependen el uno del otro. Esto hace que las proporciones entre los elementos se mantengan y todo encaje.
em
Esta unidad es relativa al tamaño de letra o font size establecida en el navegador. Su nombre es em porque el tamaño de letra se basa en el tamaño de la letra eme. A menos que haya sido modificada por el usuario, normalmente este tamaño es de 16px.
ex
Esta unidad es relativa a la altura de la «x» del elemento. También se conoce por ser más o menos la mitad del tamaño de la fuente del navegador o 0.5em.
ch
Conocido en inglés como zero width, esta unidad de medida es relativa al tamaño del ancho del cero en la fuente del navegador.
%
Esta unidad es relativa al tamaño del elemento padre.
rem
La unidad rem o root em es similar a la unidad em, pero, en vez de tomar como base el tamaño de letra del navegador, la unidad em toma el tamaño base del documento HTML. Este tamaño se personaliza bajo la etiqueta :root {font-size}. De este modo, podemos usar rem para dimensionar nuestros elementos con un múltiplo del tamaño base.
Esta unidad puede ser muy útil a la hora de dimensionar una página cuando el usuario hace zoom, pues los elementos serán relativos unos a otros y mantendrán su proporción.
Unidades del viewport
Las siguientes unidades son relativas al viewport, que es el espacio o trozo de pantalla donde se renderiza y se muestra la página web. Estas unidades sirven para dimensionar la pantalla y organizar los elementos dentro de esta.
vw
Como sigla de la unidad en inglés viewport width, esta unidad es relativa al ancho del viewport.
vh
Como sigla de la unidad en inglés viewport height, esta unidad es relativa a la altura del viewport.
vmin
Esta unidad, también conocida como viewport minimum, es relativa al factor que sea más pequeño entre el ancho y al alto del viewport.
vmax
Esta unidad, conocida como viewport maximum, es relativa al factor que sea más grande entre el ancho y el alto del viewport. Junto con vmin, esta unidad puede ser muy útil si queremos que nuestros diseños sean flexibles y se adapten al tamaño visible de la página web.
Las unidades de medida en CSS de tipo absoluto hacen referencia a las unidades que no cambian, esas que en todos lo contextos son iguales. En CSS, existen siete unidades de medida absolutas, te las presentamos a continuación:
in: hace referencia a las pulgadas, que son iguales a 2.54cm.
cm: se refiere a los centímetros.
mm: hace referencia a los milímetros.
q: se refiere a un cuarto de la unidad mm. 1q=0.248mm.
pt: un punto es igual a 1/72 de una pulgada o 0.35mm.
pc: una pica es igual a 12 puntos, o sea 4.23mm.
px: esta etiqueta se refiere a los píxeles que, aunque son absolutos (0.26mm), también son relativos a la densidad de la pantalla
Lo que sucede con los píxeles es que a medida que se le cambia el % a la pantalla, van cambiando los elementos.
Rem equivale a 16px, para poder tener un equivalente correcto se debe hacer una regla de 3 para saber a cuanto equivalen 10px en un rem, donde el porcentaje correcto será de el 62.5% de nuestro archivo html.
Con vie witdh y view height se le puede indicar cuánto porcentaje de la pantalla tomar.
En lo personal uso la equivalencia de 1rem = 1px se me hace mas cómodo, por que antes solo utilizaba px; así el salto a rem no es tan doloroso y mas fácil de manejar
No confundir a la unidad rem con la una unidad de medida para indicar la peligrosidad de una radiación —Röntgen equivalent man, rem — , que debe su nombre al físico alemán Wilhelm Röntgen. 🤓
El valor que usarás frecuentemente es px (Píxeles)
Relativas
em (Tamaño de letra del elemento padre, en el caso de propiedades tipográficas como font-size, y tamaño de la fuente del propio elemento en el caso de otras propiedades, como width.)
ex (Altura x de la fuente del elemento.)
ch (La medida de avance (ancho) del glifo “0” de la letra del elemento.)
rem (Tamaño de la letra del elemento raíz.)
lh (Altura de la línea del elemento.)
vw (1% del ancho de la ventana gráfica.)
vh (1% de la altura de la ventana gráfica.)
vmin (1% de la dimensión más pequeña de la ventana gráfica.)
vmax (1% de la dimensión más grande de la ventana gráfica.)
Para diseño responsivo lo mejor es usar medidas relativas. Ya que las pantallas no van a tener la misma medida de tu pantalla siempre. Incluso las pantallas de los teléfonos tienen diferente tamaño. EM, REM y VH son las mejores opciones, y aprender a usarlas es súper fácil.
Me siento algo confuso, pero continuaré!
He tenido esa duda del responsive y creo que lo planteado por la profe tiene bastante que ver con ello.
No me congestionaré con mas lecturas! Sigamos despejando dudas!!!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?