05 - CSS
Como já vimos, o CSS - (Folha de Estilo em Cascata) tem uma função estética e o usamos com o propósito de modificar a aparência dos elementos.
Vamos entender como isso acontece?
Sintaxe
O nosso documento CSS consiste de vários seletores que descrevem quais elementos e como eles serão modificados.
Abaixo temos a sintaxe de um seletor:
p {
color: blue;
}
Começamos descrevendo qual elemento queremos modificar. Podemos modificar uma .classe um #id ou uma <tag>. No exemplo acima estamos dizendo que todas as modificações desse seletor serão aplicadas em qualquer tag p (parágrafo).
Dentro das chaves do seletor temos o que chamamos de propriedades e seus respectivos valores. No exemplo acima usamos a propriedade color (cor) e o valor blue (azul). Com esse código todos os parágrafos da página serão exibidos na cor azul. Notem que precisamos usar os dois pontos após o nome da propriedade e um ponto e vírgula ao final da linha.
Esse é o modelo, não se esqueça dele :)
seletor {
propriedade: valor;
}
Herança
Quando estamos começando no CSS sempre ficamos perdidos quando vemos determinados styles sendo aplicados em algum elemento que não sabemos de onde veio e isso pode causar um pouco de dificuldade no processo de aprendizado da tecnologia. Vamos entender isso com um exemplo:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="./style.css"/>
</head>
<body>
<div>
<p>
Meu parágrafo de texto, bla bla bla...
</p>
</div>
</body>
</html>
div {
font-size: 36px;
}
Se rodarmos esse código vamos perceber que nosso parágrafo irá ser renderizado com 36px mesmo não tendo nenhum seletor que aplique essa regra diretamente nele. O que acontece é que temos um seletor na div que especifica o font-size e algumas propriedades do CSS como font, color, e muitas outras são aplicadas a todos os filhos do elemento especificado no seletor. Esse comportamento de determinadas propriedades recebidas nos elementos pelos seus "pais" é chamado de herança.
Especificidade
Para um melhor uso do CSS no dia a dia, é fundamental entender o conceito de especificidade . Isso vai poupar muito tempo tentando entender por que seu layout não é renderizado da maneira correta.
Imagine o seguinte cenário:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="./style.css"/>
</head>
<body>
<div>
<p>
Bom dia!!!
</p>
</div>
<p>
CSS é muito legal!!!
</p>
</body>
</html>
p {
color: blue;
}
div p {
color: red;
}
No exemplo acima temos dois parágrafos mas um deles está dentro de uma div e o outro não. No CSS temos 2 seletores: um que muda todos os parágrafos e outro seletor que muda apenas os parágrafos dentro de uma div.
Ao testarmos esse código, veremos que a frase Bom dia!!! ficará em vermelho e a frase CSS é muito legal!! em azul. Isso acontece por causa da especificidade de cada seletor. Toda vez que o navegador encontrar 2 regras conflitantes em um mesmo elemento, a opção mais específica é usada. No nosso exemplo o segundo seletor div p {} tem uma especificidade maior do que o seletor acima dele p {} por isso suas regras prevalecem.
Cascata
O termo cascata está presente no nome da tecnologia CSS e obviamente ele é importante nesse processo. Vamos entender o que ele significa:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="./style.css"/>
</head>
<body>
<p>
Olá!!!
</p>
</body>
</html>
p {
color: green;
}
p {
color: purple;
}
Se testarmos o código acima no nosso navegador veremos que o texto terá a cor roxa. Isso significa que o navegador aplicou o segundo seletor e ignorou o primeiro. Esse é o conceito de cascata: Quando duas regras se aplicam ao mesmo elemento e tem a mesma especificidade, a que estiver por último será usada.