Estou tentando fazer uma fonte em um div responsivo à janela do navegador. Até agora, funcionou perfeitamente, mas o div pai tem um max-width
de 525px
. Redimensionar ainda mais o navegador não fará com que a fonte pare de redimensionar. Isso me fez pensar se existe tal coisa como min-font-size
ou max-font-size
, e se tal coisa não existe, se existe uma maneira de alcançar algo semelhante.
Achei que usar porcentagens em font-size
funcionaria, mas o trecho de texto não será dimensionado de acordo com o div pai. Aqui está o que eu tenho:
O CSS para o div pai:
.textField{
background-color:rgba(88, 88, 88, 0.33);
width:40%;
height:450px;
min-width:200px;
max-width:525px;
z-index:2;
}
O CSS para o trecho de texto em questão:
.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;
}
Eu tenho pesquisado bastante na internet, mas sem sucesso.
Respostas:
Não, não há propriedade CSS para o tamanho mínimo ou máximo da fonte. Os navegadores geralmente têm uma configuração de tamanho mínimo de fonte, mas isso está sob o controle do usuário, não de um autor.
Você pode usar
@media
consultas para fazer algumas configurações CSS, dependendo de coisas como a largura da tela ou janela. Em tais configurações, você pode, por exemplo, definir o tamanho da fonte para um valor pequeno específico se a janela for muito estreita.fonte
max-width:600px;
. Estou certo ou não entendi corretamente as informações por trás do link?@media
se refere à janela do navegador? Como ele saberá que desejo que o tamanho da fonte seja, digamos, 20 px quando o div pai ou a janela do navegador tiver um tamanho específico, em px?@media (width:600px)
, ele executará o script abaixo@media
assim que a largura do navegador for equivalente a 600px?Você pode fazer isso usando uma fórmula e incluindo a largura da janela de visualização.
Isso define o tamanho mínimo da fonte em 7px e amplifica-o em .5vw dependendo da largura da janela de visualização.
Boa sorte!
fonte
0
. Alguns aninhadoscalc
ou algo assim?calc()
instrução é processada quando o LESS é compilado e resolve para umpx
valor simples . O redimensionamento não recalcula. Idéias ou pensamentos?Funciona bem com CSS.
Passei pelos mesmos problemas e corrigi-los da seguinte maneira.
Use um tamanho fixo de "px" para o tamanho máximo em uma largura específica e acima. Então, para larguras menores diferentes, use um "vw" relativo como uma porcentagem da tela.
O resultado abaixo é que ele se ajusta a telas abaixo de 960 px, mas mantém um tamanho fixo acima. Apenas um lembrete, para não esquecer de adicionar o documento html no cabeçalho:
Exemplo em CSS:
Espero que ajude!
fonte
Estou chegando um pouco tarde aqui, não recebo muito crédito por isso, estou apenas fazendo uma mistura das respostas abaixo porque fui forçado a fazer isso para um projeto.
Portanto, para responder à pergunta: essa propriedade CSS não existe . Não sei por que, mas acho que é porque eles têm medo de um uso indevido dessa propriedade, mas não encontro nenhum caso de uso em que isso possa ser um problema sério.
Seja como for, quais são as soluções?
Duas ferramentas nos permitirão fazer isso: media queries e propriedade vw
1) Existe uma solução "tola" que consiste em fazer uma consulta de mídia para cada passo que eantamos em nosso css, mudando a fonte de um valor fixo para outro fixo. Funciona, mas é muito chato de fazer, e você não tem um aspecto linear suave.
2) Como explicou AlmostPitt, existe uma solução brilhante para os mínimos:
O mínimo aqui seria 7 px, além de 0,5% da largura da visualização. Isso já é muito legal e funciona na maioria dos casos . Não requer nenhuma consulta de mídia, você só precisa gastar algum tempo encontrando os parâmetros corretos.
Como você notou que é uma função linear, a matemática básica aprende que dois pontos já encontram os parâmetros. Em seguida, apenas fixe o tamanho da fonte em px que deseja para telas muito grandes e para a versão móvel, depois calcule se deseja fazer um método científico. Pensei, não é absolutamente necessário e você pode simplesmente ir tentando.
3) Suponhamos que você tenha um cliente muito chato (como eu) que deseja absolutamente que um título seja de uma linha e não mais. Se você usou a solução AlmostPitt, então você está com problemas porque sua fonte continuará crescendo, e se você tiver um contêiner de largura fixa (como bootstrap parando em 1140px ou algo em janelas grandes). Aqui, sugiro que você use também uma consulta de mídia. Na verdade, você pode apenas encontrar o tamanho máximo de px que pode manipular em seu contêiner antes que o aspecto se torne indesejado (pxMax). Este será o seu máximo. Então você só precisa encontrar a largura exata da tela que você deve parar (wMax). (Eu deixo você inverter uma função linear por conta própria).
Depois disso, basta fazer
Então é perfeitamente linear e o tamanho da fonte para de crescer! Observe que você não precisa colocar sua propriedade css anterior (calc ...) em uma consulta de mídia sob wMax porque as consultas de mídia são consideradas mais importantes e sobrescreverão a propriedade anterior.
Não acho que seja útil fazer um snippet para isso, já que você teria problemas para fazê-lo para a tela inteira e não é ciência de foguetes afinal.
Espero que isso possa ajudar outras pessoas e não se esqueça de agradecer a AlmostPitt por sua solução.
fonte
max(*a*px,, *b*vw)
? Porque, no meu caso, não posso tolerar uma adição ingênua porque o resultado é muito grande, mas parece que você está sugerindo que eu poderia de alguma forma reduzir a e b sobre as quantidades ingênuas - estou tendo problemas para calcular a matemática, e eu precisa de uma solução geral, não apenas um caso específico.Na verdade, isso está sendo proposto no CSS4
Rascunho de trabalho no W3C
Citar:
Isso funcionaria da seguinte forma:
Isso significaria literalmente que o tamanho da fonte será 5% da largura da janela de visualização, mas nunca menor que 10 pixels e nunca maior que 18 pixels.
Infelizmente, esse recurso ainda não foi implementado em nenhum lugar (nem mesmo em caniuse.com).
fonte
Mochila é brilhante, mas você não precisa necessariamente recorrer a ferramentas de construção como Gulp ou Grunt etc.
Fiz uma demonstração usando CSS Custom Properties (CSS Variables) para controlar facilmente os tamanhos mínimo e máximo da fonte.
Igual a:
fonte
Obtive alguns resultados suaves com isso. Ele flui suavemente entre as 3 faixas de largura, como uma função contínua por partes.
fonte
Você pode usar o Sass para controlar os tamanhos de fonte mínimo e máximo. Aqui está uma solução brilhante de Eduardo Boucas.
https://eduardoboucas.com/blog/2015/06/18/viewport-sized-typography-with-minimum-and-maximum-sizes.html
fonte
Observe que definir o tamanho da fonte com px não é recomendado devido a questões de acessibilidade :
"definir tamanhos de fonte em px não é acessível, porque o usuário não pode alterar o tamanho da fonte em alguns navegadores. Por exemplo, usuários com visão limitada podem desejar definir o tamanho da fonte muito maior do que o tamanho escolhido por um web designer." (consulte https://developer.mozilla.org/en-US/docs/Web/CSS/font-size )
Uma abordagem mais acessível é definir
font-size: 100%
no html, que respeita as configurações de tamanho padrão do usuário , e ENTÃO usar porcentagens ou unidades relativas ao redimensionar (em
ourem
), por exemplo, com uma consulta @mídia.(consulte https://betterwebtype.com/articles/2019/06/16/5-keys-to-accessible-web-typography/ )
fonte
Sim, parece que há algumas restrições por parte de alguns navegadores em SVG. O pacote de desenvolvimento restringe-o a 8000px; O seguinte gráfico gerado dinamicamente falha, por exemplo, no Chrome.
Experimente http://www.xn--dddelei-n2a.de/2018/test-von-svt/
fonte