Estoy tratando de hacer que una fuente en un div responda a la ventana del navegador. Hasta ahora, ha funcionado perfectamente, pero el div padre tiene una max-width
de 525px
. Cambiar más el tamaño del navegador no hará que la fuente deje de cambiar de tamaño. Esto me ha hecho preguntarme si existe tal cosa como min-font-size
o max-font-size
, y si tal cosa no existe, si hay una manera de lograr algo similar.
Pensé que usar porcentajes en font-size
funcionaría, pero el fragmento de texto no se escalará de acuerdo con el div principal. Esto es lo que tengo:
El CSS para el div padre:
.textField{
background-color:rgba(88, 88, 88, 0.33);
width:40%;
height:450px;
min-width:200px;
max-width:525px;
z-index:2;
}
El CSS para el texto en cuestión:
.subText{
position:relative;
top:-55px;
left:15px;
font-family:"news_gothic";
font-size:1.3vw;
font-size-adjust:auto;
width:90%;
color:white;
z-index:1;
}
He buscado durante bastante tiempo en Internet, pero fue en vano.
Respuestas:
No, no existe una propiedad CSS para el tamaño de fuente mínimo o máximo. Los navegadores a menudo tienen una configuración para el tamaño de fuente mínimo, pero eso está bajo el control del usuario, no del autor.
Puede usar
@media
consultas para realizar algunas configuraciones de CSS dependiendo de cosas como la pantalla o el ancho de la ventana. En tales configuraciones, puede, por ejemplo, establecer el tamaño de fuente en un valor pequeño específico si la ventana es muy estrecha.fuente
max-width:600px;
. ¿Estoy en lo correcto o no entendí correctamente la información detrás del enlace?@media
refiere a la ventana del navegador? ¿Cómo sabrá que quiero que mi tamaño de fuente sea, digamos, 20px cuando el div principal o la ventana del navegador tiene un tamaño específico, en px?@media (width:600px)
, ¿ejecutará el siguiente script@media
una vez que el ancho del navegador sea equivalente a 600px?Puede hacerlo utilizando una fórmula e incluyendo el ancho de la ventana gráfica.
Esto establece el tamaño de fuente mínimo en 7px y lo amplifica en .5vw dependiendo del ancho de la ventana gráfica.
¡Buena suerte!
fuente
0
. ¿Algunos anidadoscalc
o algo así?calc()
declaración se procesa cuando se compila LESS y se resuelve en unpx
valor simple . Cambiar el tamaño no se vuelve a calcular. ¿Ideas o pensamientos?Funciona bien con CSS.
Pasé por los mismos problemas y los solucioné de la siguiente manera.
Utilice un tamaño fijo de "px" para obtener el tamaño máximo en un ancho específico y superior. Luego, para diferentes anchos más pequeños, use un "vw" relativo como porcentaje de la pantalla.
El resultado a continuación es que se ajusta solo en pantallas por debajo de 960px pero mantiene un tamaño fijo arriba. Solo un recordatorio, no olvide agregar el documento html en el encabezado:
Ejemplo en CSS:
¡Espero que te ayude!
fuente
Llego un poco tarde aquí, no me dan mucho crédito por eso, solo estoy haciendo una combinación de las respuestas a continuación porque me vi obligado a hacer eso para un proyecto.
Entonces, para responder a la pregunta: no existe esta propiedad CSS . No sé por qué, pero creo que es porque tienen miedo de un mal uso de esta propiedad, pero no encuentro ningún caso de uso en el que pueda ser un problema grave.
Como sea, cuales son las soluciones?
Dos herramientas nos permitirán hacer eso: media queries y vw property
1) Existe una solución "tonta" que consiste en realizar una consulta de medios por cada paso que damos en nuestro css, cambiando la fuente de una cantidad fija a otra cantidad fija. Funciona, pero es muy aburrido y no tiene un aspecto lineal suave.
2) Como explicó AlmostPitt, hay una solución brillante para los mínimos:
El mínimo aquí sería 7px además del 0.5% del ancho de la vista. Eso ya es realmente genial y funciona en la mayoría de los casos . No requiere ninguna consulta de medios, solo tiene que dedicar algo de tiempo a encontrar los parámetros correctos.
Como notó que es una función lineal, las matemáticas básicas le enseñan que dos puntos ya le encuentran los parámetros. Luego, simplemente fije el tamaño de fuente en px que desea para pantallas muy grandes y para la versión móvil, luego calcule si desea hacer un método científico. Pensamiento, no es absolutamente necesario y puedes intentarlo.
3) Supongamos que tienes un cliente muy aburrido (como yo) que quiere absolutamente que un título sea de una línea y no más. Si usó la solución AlmostPitt, entonces tiene problemas porque su fuente seguirá creciendo, y si tiene un contenedor de ancho fijo (como bootstrap que se detiene en 1140px o algo en ventanas grandes). Aquí le sugiero que utilice también una consulta de medios. De hecho, puede encontrar la cantidad máxima de px que puede manejar en su contenedor antes de que el aspecto se vuelva no deseado (pxMax). Este será tu máximo. Entonces solo tiene que encontrar el ancho de pantalla exacto que debe detener (wMax). (Te dejo invertir una función lineal por tu cuenta).
Después de eso, hazlo
¡Entonces es perfectamente lineal y su tamaño de fuente deja de crecer! Tenga en cuenta que no necesita poner su propiedad css anterior (calc ...) en una consulta de medios en wMax porque la consulta de medios se considera más importante y sobrescribirá la propiedad anterior.
No creo que sea útil hacer un fragmento para esto, ya que tendría problemas para llegar a la pantalla completa y, después de todo, no es ciencia espacial.
Espero que esto pueda ayudar a otros y no olvide agradecer a AlmostPitt por su solución.
fuente
max(*a*px,, *b*vw)
? Porque en mi caso, no puedo tolerar una adición ingenua porque el resultado es demasiado grande, pero parece que estás sugiriendo que de alguna manera podría reducir a y b por encima de las cantidades ingenuas; tengo problemas para calcular las matemáticas y necesitan una solución general, no solo un caso específico.En realidad, esto se propone en CSS4
Borrador de trabajo en el W3C
Citar:
Esto realmente funcionaría de la siguiente manera:
Esto significaría literalmente que el tamaño de la fuente será el 5% del ancho de la ventana gráfica, pero nunca menor de 10 píxeles y nunca mayor de 18 píxeles.
Desafortunadamente, esta función aún no está implementada en ninguna parte (ni siquiera en caniuse.com).
fuente
La mochila es brillante, pero no necesariamente tienes que recurrir a herramientas de construcción como Gulp o Grunt, etc.
Hice una demostración usando propiedades personalizadas de CSS (variables CSS) para controlar fácilmente los tamaños de fuente mínimo y máximo.
Al igual que:
fuente
Obtuve algunos resultados suaves con estos. Fluye suavemente entre los 3 rangos de ancho, como una función continua por partes.
fuente
Puede usar Sass para controlar los tamaños de fuente mínimo y máximo. He aquí una brillante solución de Eduardo Boucas.
https://eduardoboucas.com/blog/2015/06/18/viewport-sized-typography-with-minimum-and-maximum-sizes.html
fuente
Tenga en cuenta que no se recomienda configurar el tamaño de fuente con px debido a problemas de accesibilidad :
"No se puede definir el tamaño de fuente en px, porque el usuario no puede cambiar el tamaño de fuente en algunos navegadores. Por ejemplo, los usuarios con visión limitada pueden desear establecer el tamaño de fuente mucho más grande que el tamaño elegido por un diseñador web". (ver https://developer.mozilla.org/en-US/docs/Web/CSS/font-size )
Un enfoque más accesible es establecer
font-size: 100%
en el html, que respeta la configuración de tamaño predeterminada del usuario , y LUEGO usar porcentajes o unidades relativas al cambiar el tamaño (em
orem
), por ejemplo, con una consulta @media.(ver https://betterwebtype.com/articles/2019/06/16/5-keys-to-accessible-web-typography/ )
fuente
Sí, parece que existen algunas restricciones por parte de algunos navegadores en SVG. La herramienta de desarrollo lo restringe a 8000px; El siguiente gráfico generado dinámicamente falla, por ejemplo, en Chrome.
Pruebe http://www.xn--dddelei-n2a.de/2018/test-von-svt/
fuente