Olá, Nícolas.
A porcentagem sempre pega o valor do da propriedade pai como referência. Por exemplo, imagine que você tenha um <article>
que tem uma largura de 200px (width: 200px
), uma altura de 100px (height: 100px
) e o tamanho da fonte como 10px (font-size: 10px
), dentro dele você também tem um <p>
que fará uso só de porcentagem para definir a lagura, altura e tamanho da fonte:
article {
width: 200px;
heigth: 100px;
font-size: 10px;
}
p {
width: 50%;
height: 50%;
font-size: 200%;
}
Lembre-se que sempre o pai (nesse casso o <article>
é o pai do <p>
) por tanto as medidas de <p>
ficará asssim: como definimos 50% de largura e altura, nosso <p>
terá exatamente metade da largura e altura de seu pai, sendo asssim ele ficará com 100 de largura e 50 de altura. Agora a propriedade font-size
está com 200%, por tanto terá o dobro do tamanho da fonte do pai que nesse caso é 20px.
Outra coisa interessante que temos quando estamos falando de porcentagem é o funcionamento dela em outras propriedades que não sejam as: width
, height
e font-size
. Por exemplo, se utilizarmos porcentagem para a propriedade margin-top
qual será a propriedade do pai que será pega como referência?
Aqui que está a pegadinha. Se usarmos em qualquer propriedade que não seja as: width
, height
e font-size
. O filho sempre pegará a propriedade width
como referência. Pra ver se entendemos vamos aplicar uma margem no top de 50%:
article {
width: 200px;
heigth: 100px;
font-size: 10px;
}
p {
width: 50%;
height: 50%;
font-size: 200%;
margin-top: 50%; //Adicionamos essa linha :-)
}
O valor em pixel do margin-top
será 100px que é exatamente metade do valor da propriedade width
que definimos no pai o elemento <article>
.
Fez sentido? Se ficou alguma dúvida é só falar :-)