Como o CSS funciona

Uma página HTML simples chega com as próprias opiniões do navegador já aplicadas: links azuis sublinhados, texto preto sem serifa, títulos que diminuem de tamanho. CSS é como você pega essa estrutura bruta e decide como ela deve parecer. Antes de você poder mudar uma única cor ou mover uma única caixa, porém, você precisa saber como seus estilos chegam à página em primeiro lugar, e o que acontece quando duas de suas regras discordam sobre o mesmo elemento.
Anexando CSS a uma página
Existem três formas de adicionar CSS a uma página, e a diferença é principalmente sobre onde você escreve os estilos.
A primeira é um estilo inline, escrito diretamente no elemento com um atributo style:
<p style="color: teal;">Um único parágrafo azul-petróleo.</p>Isso estiliza um parágrafo e nada mais. A segunda forma é um bloco <style> interno na <head> da página, que pode estilizar muitos elementos de uma vez. A terceira, e a que você deve usar, é um arquivo CSS separado vinculado à página. Você escreve seus estilos uma vez nesse arquivo, e toda página que se conecta a ele os pega. Pense nisso como um guarda-roupa: em vez de descrever uma roupa em cada pessoa uma por uma, você escreve o código de vestuário uma vez e todos o seguem.
Aqui está a abordagem externa em completo: um arquivo HTML que vincula uma folha de estilo, e a folha de estilo em si.
<!-- index.html -->
<head>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<p class="intro">Bem-vindo ao site.</p>
</body>/* styles.css */
.intro {
color: teal;
font-size: 1.25rem;
}style, em um bloco <style>, ou em um arquivo separado que você vincula com <link>. Use o arquivo separado. Você escreve seus estilos uma vez e toda página que se conecta a ele parece a mesma. A anatomia de uma regra
Um pedaço de CSS é escrito como uma regra, e toda regra tem a mesma forma. Aqui está uma que estiliza um cartão:
.card {
color: navy;
padding: 16px;
}O .card na frente é o seletor: ele escolhe quais elementos a regra se aplica, neste caso qualquer coisa com a classe card. Tudo dentro das chaves é o bloco de declaração. Cada linha dentro, como color: navy;, é uma declaração: uma propriedade (color) e o valor que você quer que ela tenha (navy), separados por dois-pontos e terminados com ponto-e-vírgula. Leia a regra toda como uma frase: "para cada cartão, faça a cor marinha e o preenchimento 16 pixels."
.card escolhe os elementos, e cada declaração como color: navy; é uma propriedade e um valor com um dois-pontos entre eles e um ponto-e-vírgula no final. Uma vez que você pode nomear essas partes, toda regra que você lê parece a mesma. A cascata
Às vezes duas regras tentam estilizar o mesmo elemento, e o CSS precisa de uma forma de decidir qual vence. Essa decisão é a cascata, e é de onde o C em CSS vem.
.card {
color: navy;
}
.card {
color: teal;
}Ambas as regras visam o cartão e ambas definem a cor. O cartão acaba azul-petróleo, porque quando duas regras têm a mesma força, a escrita depois vence. A ordem importa, e ela flui para baixo no arquivo como água, que é de onde o nome cascata vem. Há um segundo critério de desempate também: um seletor mais específico bate um mais geral, então uma regra visando precisamente seu cartão pode sobrescrever uma regra mais ampla mesmo que a mais ampla venha depois. Você encontrará essa especificidade em detalhes no capítulo de seletores.
Herança
Defina uma cor em uma caixa e o texto dentro dela muitas vezes vira aquela cor também, embora você nunca tenha estilizado aquele texto diretamente. Esse repasse é chamado herança.
.site-header {
color: white;
font-family: Georgia, serif;
}Cada pedaço de texto dentro do cabeçalho, um título, um link, um lema, pega essa cor branca e essa fonte sem uma regra própria, porque color e font-family são propriedades herdadas. Nem tudo passa para baixo, porém. Propriedades de espaçamento como padding não herdam: o preenchimento que você coloca no cabeçalho fica no cabeçalho e não aparece nos elementos dentro dele. Como uma guia aproximada, estilos relacionados a texto fluem para os filhos, e estilos relacionados a caixa como espaçamento e bordas permanecem no lugar.
color ou font-family em um cabeçalho e o texto dentro pega-o gratuitamente. Espaçamento como padding não passa para baixo, ele fica onde você o coloca. Regra aproximada: estilos de texto viajam para filhos, estilos de caixa permanecem. 
