He creado un sitio usando la cuadrícula Zurb Foundation 3 . Cada página tiene un gran h1
:
body {
font-size: 100%
}
/* Headers */
h1 {
font-size: 6.2em;
font-weight: 500;
}
<div class="row">
<div class="twelve columns text-center">
<h1> LARGE HEADER TAGLINE </h1>
</div>
<!-- End Tagline -->
</div>
<!-- End Row -->
Cuando cambio el tamaño del navegador al tamaño móvil, la fuente grande no se ajusta y hace que el navegador incluya un desplazamiento horizontal para acomodar el texto grande.
Me di cuenta de que en la página de ejemplo de Zurb Foundation 3 Typography , los encabezados se adaptan al navegador a medida que se comprime y expande.
¿Me estoy perdiendo algo realmente obvio? ¿Cómo logro esto?
css
responsive-design
font-size
zurb-foundation
em
usuario2213682
fuente
fuente
Respuestas:
El
font-size
no va a responder como esto al cambiar el tamaño de la ventana del navegador. En su lugar, responden a la configuración de tamaño de zoom / tipo del navegador, como si presiona Ctrly +juntos en el teclado mientras está en el navegador.Preguntas de los medios
Tendría que mirar el uso de consultas de medios para reducir el tamaño de fuente en ciertos intervalos donde comienza a romper su diseño y crear barras de desplazamiento.
Por ejemplo, intente agregar esto dentro de su CSS en la parte inferior, cambiando el ancho de 320 píxeles para donde su diseño comience a romperse:
Longitudes de porcentaje de ventana gráfica
También puede utilizar longitudes de ventana gráfica porcentuales tales como
vw
,vh
,vmin
yvmax
. El documento oficial del W3C para esto dice:Nuevamente, a partir del mismo documento W3C, cada unidad individual se puede definir de la siguiente manera:
Y se usan exactamente de la misma manera que cualquier otro valor CSS:
La compatibilidad es relativamente buena como se puede ver aquí . Sin embargo, algunas versiones de Internet Explorer y Edge no admiten vmax. Además, iOS 6 y 7 tienen un problema con la unidad vh, que se solucionó en iOS 8.
fuente
font-size: 1.5vw;
?font-size: calc(12px + 1vw)
Puede usar el valor de la ventana gráfica en lugar de ems, pxs o pts:
De CSS-Tricks: tipografía de tamaño de ventana gráfica
fuente
He estado buscando formas de superar este problema y creo que he encontrado una solución:
Si puede escribir su aplicación para Internet Explorer 9 (y posterior) y todos los demás navegadores modernos que admiten CSS calc (), unidades rem y unidades vmin. Puede usar esto para lograr texto escalable sin consultas de medios:
Aquí está en acción: http://codepen.io/csuwldcat/pen/qOqVNO
fuente
Use
media
especificadores CSS (eso es lo que usan [zurb]) para un estilo receptivo:fuente
Si no le importa usar una solución jQuery, puede probar el complemento TextFill
https://github.com/jquery-textfill/jquery-textfill
fuente
Hay varias formas de lograr esto.
Use una consulta de medios , pero requiere tamaños de fuente para varios puntos de interrupción:
Utilice dimensiones en % o em . Simplemente cambie el tamaño de fuente base, y todo cambiará. A diferencia del anterior, puede cambiar la fuente del cuerpo y no h1 cada vez o dejar que el tamaño de fuente base sea el predeterminado del dispositivo y el resto en
em
:Ver kyleschaeffer.com / ....
CSS 3 admite nuevas dimensiones que son relativas al puerto de vista. Pero esto no funciona en Android:
3.2vmax = Mayor de 3.2vw o 3.2vh
Ver CSS-Tricks ... y también mira ¿Puedo usar ...
fuente
Hay otro enfoque para los tamaños de fuente receptivos: usar unidades rem.
Más adelante en las consultas de medios, puede ajustar todos los tamaños de fuente cambiando el tamaño de fuente base:
Para que esto funcione en Internet Explorer 7 e Internet Explorer 8, deberá agregar una reserva con unidades px:
Si estás desarrollando con Less , puede crear un mixin que haga los cálculos por usted.
Soporte de unidades rem - http://caniuse.com/#feat=rem
fuente
La solución "vw" tiene un problema cuando va a pantallas muy pequeñas. Puede establecer el tamaño base y subir desde allí con calc ():
fuente
font-size: calc(1.2rem + 1vw)
para un título. De esa manera tuve la ventaja de usar una unidad no basada en píxeles (aunque eso puede no ser aplicable aquí). También tuve un retroceso en los ems simples para navegadores más antiguos. Finalmente, dado que eso se volvió un poco pequeño en el móvil, utilicé una consulta de medios para esos. Eso puede ser demasiado elaborado, pero parece hacer lo que quería.Esto se implementa en parte en la fundación 5.
En el archivo _type.scss tienen dos conjuntos de variables de encabezado:
Para el nivel medio, generan tamaños basados en el primer conjunto de variables:
Y para pantallas pequeñas, es decir, pequeñas pantallas, usan un segundo conjunto de variables para generar CSS:
Puede usar estas variables y anular en su archivo scss personalizado para establecer los tamaños de fuente para los tamaños de pantalla respectivos.
fuente
También se puede hacer un tamaño de fuente sensible con este código JavaScript llamado FlowType :
FlowType: tipografía web receptiva en su máxima expresión: tamaño de fuente basado en el ancho del elemento.
O este código JavaScript llamado FitText :
FitText: hace que los tamaños de fuente sean flexibles. Use este complemento en su diseño receptivo para cambiar el tamaño de sus titulares en función de la proporción.
fuente
Si está utilizando una herramienta de construcción, pruebe con la mochila.
De lo contrario, puede usar variables CSS (propiedades personalizadas) para controlar fácilmente los tamaños de fuente mínimos y máximos de esta manera ( demostración ):
fuente
Vi un gran artículo de CSS-Tricks . Funciona bien:
Por ejemplo:
Podemos aplicar la misma ecuación a la
line-height
propiedad para que también cambie con el navegador.fuente
Se me ocurrió una idea con la que solo tienes que definir el tamaño de fuente una vez por elemento, pero todavía está influenciado por las consultas de los medios.
Primero, configuro la variable "--text-scale-unit" en "1vh" o "1vw", dependiendo de la ventana gráfica que use las consultas de medios.
Luego uso la variable usando calc () y mi número de multiplicador para font-size:
En mi ejemplo, solo utilicé la orientación de la ventana gráfica, pero el principio debería ser posible con cualquier consulta de medios.
fuente
vmin
y envmax
lugar de este@media
negocio?"FitText" de jQuery es probablemente la mejor solución de encabezado sensible. Compruébelo en GitHub: https://github.com/davatron5000/FitText.js
fuente
Al igual que con muchos marcos, una vez que "salga de la cuadrícula" y anule el CSS predeterminado del marco, las cosas comenzarán a romperse de izquierda a derecha. Los marcos son inherentemente rígidos. Si tuviera que usar el estilo H1 predeterminado de Zurb junto con sus clases de cuadrícula predeterminadas, entonces la página web debería mostrarse correctamente en el móvil (es decir, sensible).
Sin embargo, parece que desea encabezados de 6.2em muy grandes, lo que significa que el texto tendrá que reducirse para poder caber dentro de una pantalla móvil en modo vertical. Su mejor opción es utilizar un complemento jQuery de texto receptivo como FlowType y FitText . Si desea algo liviano, puede consultar mi plugin jQuery de texto escalable:
http://thdoan.github.io/scalable-text/
Uso de la muestra:
fuente
En Sass original real (no scss), podría usar los siguientes mixins para establecer automáticamente los párrafos y todos los encabezados '
font-size
.Me gusta porque es mucho más compacto. Y más rápido para escribir. Aparte de eso, proporciona la misma funcionalidad. De todos modos, si todavía quieres seguir con la nueva sintaxis - scss, entonces puedes convertir mi contenido Sass a scss aquí: [CONVERTIR SASS A SCSS AQUÍ]
A continuación te doy cuatro Sass mixins. Tendrá que ajustar su configuración a sus necesidades.
Después de que termine de jugar con la configuración, simplemente haga una llamada en un mixin, que es: + config-and-run-font-generator () . Vea el código a continuación y los comentarios para obtener más información.
Supongo que podría hacerlo automáticamente para una consulta de medios como se hace para las etiquetas de encabezado, pero todos usamos diferentes consultas de medios, por lo que no sería apropiado para todos. Utilizo un enfoque de diseño móvil primero, así que así es como lo haría. Siéntase libre de copiar y usar este código.
COPIE Y PEGUE ESTAS MEZCLAS A SU ARCHIVO:
CONFIGURA TODAS LAS MEZCLAS A TUS NECESIDADES - ¡JUEGA CON ÉL! :) Y LUEGO LLÁMELO EN LA PARTE SUPERIOR DE SU CÓDIGO SASS REAL CON:
Esto generaría esta salida. Puede personalizar los parámetros para generar diferentes conjuntos de resultados. Sin embargo, debido a que todos usamos diferentes consultas de medios, algunos mixins tendrás que editarlos manualmente (estilo y medios).
CSS GENERADO:
fuente
Utilizo estas clases de CSS y hacen que mi texto sea fluido en cualquier tamaño de pantalla:
fuente
fuente
Existen las siguientes formas mediante las cuales puede lograr esto:
Estas unidades se personalizarán según el ancho y la altura de la pantalla.
fuente
Puede hacer que el tamaño de fuente responda si lo define en vw (ancho de ventana). Sin embargo, no todos los navegadores lo admiten. La solución es usar JavaScript para cambiar el tamaño de fuente base dependiendo del ancho del navegador y establecer todos los tamaños de fuente en%.
Aquí hay un artículo que describe cómo hacer tamaños de fuente receptivos: http://wpsalt.com/responsive-font-size-in-wordpress-theme/
fuente
He encontrado esta solución y me funciona muy bien:
fuente
Una forma de resolver el problema de que el texto se vea bien tanto en el escritorio como en el móvil / tableta es fijar el tamaño del texto a unidades físicas como centímetros o pulgadas físicas, que no dependen del PPI de la pantalla (puntos por pulgada).
Según esta respuesta , a continuación se muestra el código que uso al final del documento HTML para un tamaño de fuente sensible:
En el código anterior, los elementos de una clase diferente tienen tamaños de fuente asignados en unidades físicas, siempre que el navegador / SO esté configurado correctamente para el PPI de su pantalla.
Una fuente de unidad física no siempre es demasiado grande ni demasiado pequeña, siempre que la distancia a la pantalla sea habitual (distancia de lectura de libros).
fuente
El tamaño del texto se puede establecer con una
vw
unidad, lo que significa el "ancho de la vista". De esa forma, el tamaño del texto seguirá el tamaño de la ventana del navegador:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_responsive_text
Para mi proyecto personal utilicé vw y @meida. Funciona perfectamente
fuente
Usa esta ecuación:
Para cualquier cosa mayor o menor que 1440 y 768, puede asignarle un valor estático o aplicar el mismo enfoque.
El inconveniente con la solución vw es que no puede establecer una relación de escala, digamos que un 5vw con una resolución de pantalla de 1440 puede terminar siendo 60px tamaño de fuente, su tamaño de fuente ideal, pero cuando reduce el ancho de la ventana a 768, puede terminar siendo 12px, no el mínimo que quieres.
Con este enfoque, puede establecer su límite superior e inferior, y la fuente se escalará en el medio.
fuente
Podemos usar calc () de css
La fórmula matemática es calc (minsize + (maxsize - minsize) * (100vm - minviewportwidth) / (maxwidthviewoport - minviewportwidth)))
Codepen
fuente
Me temo que no hay una solución fácil con respecto al cambio de tamaño de fuente. Puede cambiar el tamaño de fuente usando una consulta de medios, pero técnicamente no cambiará de tamaño sin problemas. Por ejemplo, si usa:
su
font-size
habrá 3em tanto para un 300 píxeles y una anchura de 200 píxeles. Pero necesita unfont-size
ancho inferior de 200 px para lograr una respuesta perfecta.Entonces, ¿cuál es la solución real? Solo hay una manera. Debe crear una imagen PNG (con un fondo transparente) que contenga su texto. Después de eso, puede hacer que su imagen responda fácilmente (por ejemplo: ancho: 35%; altura: 28px). De esta manera, su texto responderá completamente con todos los dispositivos.
fuente
Después de muchas conclusiones terminé con esta combinación:
fuente
prueba esto
html { font-size: min(max(16px, 4vw), 22px); }
lo obtuve de https://css-tricks.com/simplified-fluid-typography/
fuente
Aquí hay algo que funcionó para mí. Solo lo probé en un iPhone.
Ya sea que tenga
h1
,h2
op
etiquetas coloque esto alrededor de su texto:Esto genera un texto de 22 puntos en una computadora de escritorio y aún se puede leer en el iPhone.
fuente