CSS Fogli Di Stile

Selettori Di Fratelli

Selettori di fratelli: teoria, esempi e sperimentazione nel browser.

Prerequisiti: Selettori di discendente e figlio diretto.

Fratelli successivi nella struttura HTML

Fratelli successivi nella struttura HTML: fondamenti.

Due elementi sono fratelli quando hanno lo stesso genitore. Il combinatore + seleziona il fratello immediatamente successivo che soddisfa la seconda parte del selettore. h2 + p individua quindi un paragrafo subito dopo un titolo h2. Il combinatore ~ ammette invece altri elementi intermedi e seleziona i fratelli successivi corrispondenti.

Come funziona: fratelli successivi nella struttura html

Fratelli successivi nella struttura HTML: comportamento nel browser.

Queste relazioni dipendono dall’albero HTML, non da quanto gli elementi sembrino vicini sullo schermo. Entrambi i combinatori operano verso gli elementi successivi nella sequenza; non selezionano automaticamente un fratello precedente. Inserire un div intermedio può interrompere la corrispondenza con +, anche se il paragrafo resta il primo testo visibile dopo il titolo.

Scelte di utilizzo e limiti

Fratelli successivi nella struttura HTML: progetto e verifica.

Sono utili per regole come «riduci il margine del paragrafo introduttivo dopo un titolo» senza aggiungere classi a ogni elemento. Non usarli quando il collegamento fra elementi è solo accidentale: se il markup cambia spesso, una classe di ruolo può essere più stabile. Verifica sempre un caso corrispondente e un caso che non deve cambiare.

Idea chiave: Il primo paragrafo riceve entrambe le regole. Il secondo riceve il colore, ma non il grassetto del combinatore +.

Esempio commentato

Fratelli successivi nella struttura HTML: HTML e CSS.

Esempio con stile esterno. Il documento index.html collega il file stile.css mediante il tag link nella head.

Documento HTML completo

<!doctype html>
<html lang="it">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Selettori di fratelli</title>
<link rel="stylesheet" href="stile.css">
</head>
<body>
<section>
<h2>Argomento</h2>
<p>Introduzione immediata.</p>
<div>Un elemento intermedio.</div>
<p>Paragrafo successivo.</p>
</section>
</body>
</html>

File stile.css

h2 + p { font-weight: bold; }
h2 ~ p { color: navy; }

Il primo paragrafo riceve entrambe le regole. Il secondo riceve il colore, ma non il grassetto del combinatore +.

ProprietàValore nell’esempioSignificato
font-weightboldPeso del carattere.
colornavyColore del testo; non imposta lo sfondo.
Attenzione: + e ~ richiedono lo stesso genitore e una relazione verso fratelli successivi; non indicano figli.

LABORATORIO

Sperimentare: Fratelli successivi nella struttura HTML

Il primo paragrafo riceve entrambe le regole. Il secondo riceve il colore, ma non il grassetto del combinatore +.

Obiettivo: Comprendere e applicare fratelli successivi nella struttura html attraverso esempi e verifica nel browser.

Software: editor di testo e browser con DevTools; Tempo: 15 minuti.

Preparazione: scarica l’esempio completo e estrai lo ZIP. Apri index.html nel browser. Puoi anche aprire l’esempio online.

Apri il file stile.css nell’editor. Le lezioni iniziali usano un documento già preparato per concentrarsi sulle regole; il collegamento esterno e lo stile interno vengono spiegati nelle lezioni dedicate. Le modifiche nei DevTools sono normalmente temporanee.

Procedura passo passo

  1. Osserva il punto di partenza: apri l’esempio, confronta markup e regole e individua il selettore o il contesto di layout rilevante.
  2. Esegui la modifica: Inserisci un div fra h2 e il primo paragrafo.
  3. Salva e ricarica la pagina dopo ogni modifica. Confronta gli elementi che devono cambiare con quelli che devono restare invariati.
  4. Ispeziona il risultato: usa il menu Ispeziona e controlla Styles/Regole e Computed/Calcolato. Per layout Flex o Grid attiva l’overlay, se disponibile.
  5. Annota causa ed effetto: scrivi il valore o la struttura iniziale, il cambiamento e il risultato. Ripristina il punto di partenza prima dell’esercizio autonomo.
Cosa devi vedere — Output atteso

Il primo paragrafo non è più immediatamente successivo al titolo: perde il grassetto, ma resta selezionato da ~.

Il font e alcuni dettagli dell’interfaccia dipendono dal browser. Valuta la proprietà e il comportamento descritti, non una corrispondenza perfetta con uno screenshot.

Verifica del risultato

ControlloCriterio
Effetto specificoIl primo paragrafo non è più immediatamente successivo al titolo: perde il grassetto, ma resta selezionato da ~.
Corrispondenza del codiceIndividua la dichiarazione o la relazione HTML responsabile della differenza.
PersistenzaRiporta la modifica nel file e verifica dopo un ricaricamento.
SpiegazioneMotiva la differenza senza affidarti soltanto a uno screenshot.
Se il risultato non coincide: verifica file aperto, salvataggio, percorso del CSS, selettore e validità dei valori. Controlla poi la cascata e le dimensioni del viewport. Cambia una sola causa alla volta.

Esercizio autonomo

Aggiungi un bordo superiore ai paragrafi che seguono immediatamente un altro paragrafo.

Consegna: file modificati e una breve spiegazione di selettore, proprietà e risultato. Criterio di riuscita: il cambiamento richiesto funziona dopo il ricaricamento e non taglia informazioni indispensabili.

Una possibile soluzione dell’esercizio
p + p { border-top: 1px solid #999; }

Integra la soluzione nel punto pertinente: modifica o sostituisci le regole coinvolte invece di accumulare dichiarazioni contraddittorie. Le altre parti dell’esempio restano necessarie.

Verifica dei concetti

Fratelli successivi nella struttura HTML: interpretazione e applicazione.

Seleziona una domanda per visualizzare la risposta e confrontarla con la tua.

1. Quale combinatore ammette fratelli intermedi? ▾
Risposta: ~. Due elementi sono fratelli quando hanno lo stesso genitore. Il combinatore + seleziona il fratello immediatamente successivo che soddisfa la seconda parte del selettore. h2 + p individua quindi un paragrafo subito dopo un titolo h2. Il combinatore ~ ammette invece altri elementi intermedi e seleziona i fratelli successivi corrispondenti.
2. Come si interpreta il codice dell’esempio? ▾
Risposta: Il primo paragrafo riceve entrambe le regole. Il secondo riceve il colore, ma non il grassetto del combinatore +.
3. Quale risultato permette di verificare la modifica del laboratorio? ▾
Risposta: Il primo paragrafo non è più immediatamente successivo al titolo: perde il grassetto, ma resta selezionato da ~.
4. Quale attenzione evita un’interpretazione sbagliata? ▾
Risposta: + e ~ richiedono lo stesso genitore e una relazione verso fratelli successivi; non indicano figli.

Riferimento tecnico: MDN — riferimento CSS. Cerca le proprietà o i selettori utilizzati nell’esempio.