Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida no Ex. 8 da Aula 1 - conversao de px para rem

Olá, eu li todos os tópicos e resolvi utilizar a unidade de medida rem no meu projeto. Gostaria de saber se o raciocínio está correto, segue exemplo de uma classe do css da bio.

Em pixel: .citacao-bio { background-color: #D9E5E3; border: 10px solid #C2CCCA; padding: 20px; margin: 20px 40px; width: 250px; box-sizing: border-box; }

Em em: .citacao-bio { background-color: #D9E5E3; border: 0.625rem solid #C2CCCA; padding: 1.25rem; margin: 1.25rem 2.5rem; width: 15.62rem; box-sizing: border-box; }

Peguei os valores em px e dividi por 16 é esse mesmo o caminho?

4 respostas

Oi Andréia, tudo certo?

Basicamente isso que você fez sim! Por default o html tem 16px de fonte, então tá certo!

O bom do REM é que você pode mudar toda essa galera de uma vez, só colocando um font-size diferente no html.

Eu recomendaria usar o EM, que amarra essa galera toda só no elemento pai deles, e não no HTML.

Espero ter ajudado,

Abcs!

Oi Natan, obrigada pela dica. 1 - Mas agora me confundi, se eu usar o "rem", não estaria deixando a página responsiva e assim em qualquer browser funcionaria porque devo colocar um valor na tag html então se o default já é 16px?

2 - Se eu usar "em" terei que colocar um valor em pixel no elemento pai de qualquer jeito não é isso?

Ainda confundo o em com o rem.

solução!

Oi Andréia!

Vou tentar responder suas perguntas da forma como eu entendi.

1 - Mas agora me confundi, se eu usar o "rem", não estaria deixando a página responsiva e assim em qualquer browser funcionaria porque devo colocar um valor na tag html então se o default já é 16px?

Você pode definir o valor na tag <html> pra forçar todos os navegadores a exibir sua página com o mesmo tamanho, independentemente da fonte configurada, seja padrão ou configurada pelo usuário.

Por exemplo, digamos que você não incluiu o font-size na <html>.

Se um usuário configurar o navegador para usar uma fonte de 30px, ele vai ver na tela um resultado diferente de quem deixar o valor padrão (16px, normalmente).

Mas se você definir font-size: 20px;, por exemplo, todos vão ver a mesma coisa, independentemente da configuração do navegador.

2 - Se eu usar "em" terei que colocar um valor em pixel no elemento pai de qualquer jeito não é isso?

Não. Se você usar em o elemento vai buscar o valor no elemento pai, mesmo que você não tenha definido nenhum valor em pixels.

Considere, por exemplo, o código (disponível aqui: http://codepen.io/israelss/pen/akrPpw):

<div class="pai">
  Texto pai - font-size: 10px;
  <div class="filho">
    Texto filho - font-size: 15px;
    <div class="neto">
      Texto neto - font-size: 30px;
    </div>
  </div>
</div>

com o CSS:

.pai {
  font-size: 10px;
}

.filho {
  font-size: 1.5em;
}

.neto {
  font-size: 2em;
}

Veja que não defini um font-size em pixels na classe "filho", mas mesmo assim o elemento da classe "neto" reconheceu o valor correto do tamanho da fonte.

Espero ter ajudado.

Abraços!

Olá Israel! Muito grata. Agora esclareceu!