CSS, caixa e layout

Seletores, cascata, herança, medidas, fluxo, posicionamento, flexbox, grid e desenho responsivo.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Seletores: ler antes de contar

  • Espaço é descendente; > é filho direto; + é o irmão seguinte; ~ são os posteriores. A vírgula separa alternativas.
  • p.ativo é o próprio parágrafo; p .ativo é um descendente.
  • :nth-child conta todos os elementos filhos; :nth-of-type só os do tipo. A contagem começa em 1 e ignora texto.
  • [href^="https"], [href$=".pdf"], [href*="livro"]: início, fim, parte. [class~="x"] procura palavra em lista; [lang|="pt"] aceita pt ou pt-....
  • :not exclui, :is reúne, :has testa relação com outros elementos. & é o seletor exterior em regras aninhadas.
  • Pseudo-classe (:checked) testa o elemento; pseudo-elemento (::before, com content) representa parte gerada.

Cascata em quatro passos

  1. Confirma que ambas atingem o elemento.
  2. Compara origem, importância e camadas. Regras sem camada vencem as com camada; nas importantes, a ordem inverte-se. Camada posterior vence anterior.
  3. No mesmo nível, compara (IDs, classes/atributos/pseudo-classes, elementos) da esquerda para a direita.
  4. Em empate, ganha a posterior.

(1,1,3) vence (1,1,0) na terceira coluna. Um ID vence qualquer número de classes. * e combinadores não contam; :where vale zero; :is, :not e :has usam o maior argumento. !important muda importância, não especificidade. Estilo em linha vence regras normais do autor.

Herança é outro mecanismo: declaração direta no filho vence valor herdado. color herda; margem, borda e padding não. inherit pede ao pai; initial pede o inicial; unset herda quando a propriedade é herdada.

Caixa: onde fica cada medida

  • content-box: width mede só o conteúdo; soma padding e borda. border-box: já os inclui. Margem fica sempre fora.
  • padding: a b c d segue cima, direita, baixo, esquerda; dois valores dão vertical e horizontal.
  • Margens verticais de blocos em fluxo podem colapsar (16px com 24px dão 24px). Padding nunca colapsa.
  • rem usa a raiz; em em font-size usa o pai, nas restantes usa o próprio elemento. vw/vh usam o viewport.

Posicionar e distribuir

ValorConserva lugar?Referência
staticSim, fluxo normalNenhuma (top/left ignorados)
relativeSim, desloca o desenhoPosição original
absoluteNãoAntepassado posicionado (ou transformado) mais próximo
fixedNãoNormalmente o viewport
stickySim, até prenderLimite definido no scroll
  • display: none retira a caixa; visibility: hidden guarda o espaço. transform redesenha sem reservar lugar. z-index só compara dentro do mesmo contexto de empilhamento.
  • Flexbox: justify-content no eixo principal, align-items no transversal. flex: 1 1 200px é crescimento, redução e base, não largura fixa. margin-top: auto empurra o botão para o fundo do cartão.
  • Grid: 1fr reparte o que sobra depois de fixos e gaps. grid-column: 1 / 3 ocupa duas colunas. minmax(0, 1fr) deixa a coluna encolher abaixo do mínimo do conteúdo.

Conta de fr (720px, fixa 120px, gaps 30px)

Sobra 720 - 120 - 60 = 540; com 1fr + 2fr dá 180px e 360px. Um item 2 / 4 atravessa colunas e gap interior: 180 + 30 + 360 = 570px. fr não é percentagem do contentor.

Explicação completa.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.