Curso de CSS / Sintaxe: seletores, declarações, comentários e erros

Uma regra de CSS combina um seletor com declarações escritas como propriedade: valor; dentro de chaves. A sintaxe correta ajuda o navegador a aplicar os estilos pretendidos, mas uma declaração malformada pode ser ignorada enquanto outras declarações válidas continuam funcionando.

Leia as partes de uma regra de CSS

.notice {
  color: #087f5b;
  padding: 16px;
}
Parte exemplo significado
seletor .notice Escolha um elemento que tenha a classe notice.
bloco de declaração { ... } Agrupa declarações para aplicar a este seletor.
Propriedade color, padding Estas são as características a serem alteradas, como cor do texto e espaçamento interno.
valor #087f5b, 16px Isto é o que você deseja especificar para essa propriedade.
declaração padding: 16px; Este é um item onde o nome da propriedade e o valor são unidos por dois pontos.

Cada propriedade permite valores diferentes. Insira o valor da cor em color e o valor do comprimento em padding. padding: blue; não é um valor válido de espaçamento interno, mesmo que a palavra esteja escrita corretamente. 16px é escrito com números e unidades. Se você usar espaços como 16 px, ele não será lido como um único valor de comprimento.

Use chaves, dois-pontos, ponto e vírgula e espaços em branco

Quebras de linha e indentação ajudam a tornar o código mais fácil de ler para os humanos. As duas regras a seguir se aplicam da mesma forma porque têm o mesmo seletor e a mesma declaração. Quando você está aprendendo, é mais fácil encontrar símbolos ausentes se você separar as declarações linha por linha. Para escolher um seletor de acordo com os elementos a estilizar, consulte Seletores CSS Básicos: Tipo, Classe, ID e Atributos.

.notice { color: #087f5b; padding: 16px; }

.notice {
  color: #087f5b;
  padding: 16px;
}

Embora a declaração final possa omitir seu ponto e vírgula, escrevê-lo de forma consistente torna adições posteriores mais seguras. Espaços em branco no seletor podem mudar o significado: .notice.urgent corresponde a um elemento com ambas as classes, enquanto .notice .urgent corresponde a um elemento da classe urgent descendente de um elemento da classe notice. Remover esse espaço altera o seletor. Veja MDN: Introdução.

Agrupe seletores e escreva comentários

h1, h2 {
  color: #087f5b;
}

/* Apply the background and border only to the notice. */
.notice {
  background-color: #e9f7ef;
  border: 1px solid #087f5b;
}

Uma vírgula liga múltiplos seletores ao mesmo bloco de declaração. h1, h2 seleciona h1 e h2 respectivamente, e h1 h2 é outro seletor que encontra h2 dentro de h1. Uma vírgula é apropriada para o propósito de aplicar a mesma cor.

Comentários em CSS começam com /* e terminam com */. Declarações dentro de comentários não são executadas no estilo. Pode ser usado para escrever uma explicação ou para excluir temporariamente uma regra, mas se o símbolo de fechamento for omitido, o código atrás dele pode ser tratado como comentário. No CSS regular, o // do JavaScript não é usado como notação de comentário de linha única.

Compare erros de declaração e erros de seletor

Quando um navegador encontra um erro em CSS, ele ignora a parte inválida e continua processando as possíveis regras. Isso nem sempre significa "ignorar uma linha que está errada." Delimitadores ausentes ou erros no seletor podem ter um grande impacto.

.notice {
  color: blue;
  padding: blue;
  background-color: #e9f7ef;
}

Apenas padding: blue é inválido aqui. A menos que existam outras regras, a cor do texto e a cor de fundo são aplicadas, e o padding não é alterado por esta declaração. Mesmo que a propriedade seja escrita incorretamente, como colro, a declaração não será reconhecida.

.notice {
  color: blue
  background-color: #e9f7ef;
  padding: 16px;
}

Este bloco está faltando um ponto e vírgula após a primeira declaração. O navegador lê blue background-color: #e9f7ef como o valor de color, o que é inválido. Nem a cor pretendida nem a declaração de fundo pretendida se aplicam, mas padding: 16px; ainda se aplica. Adicione o ponto e vírgula que falta após blue.

h1, .notice:made-up-state {
  color: blue;
}

Uma pseudo-classe desconhecida torna esta lista de seletores comuns separados por vírgula inválida, então a regra também deixa de se aplicar a h1. Certas listas de seletores especiais usam análise tolerante. Portanto, este exemplo não descreve o comportamento de todos os contextos de listas de seletores. Veja MDN: Tratamento de erros de CSS.

Execute o exemplo completo

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Small Garden</title>
  <style>
body { margin: 24px; font-family: sans-serif; line-height: 1.7; }
    h1, h2 { color: #087f5b; }
    .notice {
      color: #087f5b;
      background-color: #e9f7ef;
      padding: 16px;
      border: 1px solid #087f5b;
    }
    /* Sentence describing operating hours */
    .description { font-size: 18px; }
  </style>
</head>
<body>
<h1>Small Garden</h1>
  <p class="notice">We open at 9 a.m. every day.</p>
  <h2>Visitor Information</h2>
  <p class="description">Bring a water bottle and comfortable shoes.</p>
</body>
</html>

Se você salvar o código inteiro como index.html e abri-lo, h1 e h2 são do mesmo verde, e o aviso tem um fundo claro, 16px de espaçamento interno e borda de 1px. O parágrafo descritivo aparece com fonte de 18px. font-size é a propriedade que define o tamanho da fonte, line-height é a altura da linha, e border é a borda. Aqui ele é usado como uma propriedade auxiliar para conectar sintaxe e resultados.

Encontre e corrija erros de sintaxe

Substitua o bloco .notice em todo o exemplo pelo código abaixo. O objetivo é corrigir dois erros de sintaxe e fazer com que seja “texto azul, fundo verde claro, 16px de espaçamento interno.” Você pode facilmente reverter copiando o arquivo original para um nome diferente antes de alterá-lo.

.notice {
  colro: blue;
  background-color #e9f7ef;
  padding: 16px;
}

Mude colro para color e adicione dois pontos após background-color. Salve e atualize: o aviso deve ter texto azul, fundo verde claro e espaçamento interno de 16px. O espaçamento interno já era válido, então algum espaço pode permanecer mesmo antes de os erros de sintaxe serem corrigidos.

.notice {
  color: blue;
  background-color: #e9f7ef;
  padding: 16px;
}

Se sua edição não alterar a página, primeiro verifique se você abriu o arquivo correto. Em seguida, Inspecione o CSS com DevTools: Styles e Computed para ver quais valores realmente se aplicam. Distinga erros de sintaxe, seletores que correspondem ao elemento errado e conflitos entre regras antes de alterar mais valores.