La struttura di un documento HTML è simile a un albero genealogico. Nella tua famiglia, hai i tuoi genitori e altri che sono venuti prima di te. Questi sono i tuoi antenati. I bambini e quelli che vengono dopo di te su quell'albero sono i tuoi discendenti. HTML funziona in modo simile. Gli elementi che si trovano all'interno di altri elementi sono i loro discendenti. Ad esempio, dal momento che quasi ogni elemento HTML è all'interno di
tag, sarebbero un discendente di questo elementi. Questa relazione è importante per capire quando inizi a lavorare con i CSS e devi scegliere come target elementi specifici per applicare stili visivi.Selettori discendenti CSS
Un selettore discendente CSS si applica agli elementi che si trovano all'interno di un altro elemento (o più precisamente, un elemento discendente da un altro elemento). Ad esempio, un elenco non ordinato ha un tag con tag come discendenti. Usiamo il seguente codice HTML come esempio:
- questo è un link
Il LI
i tag sono discendenti di UL
etichetta. Il UN
tag è un discendente di tutti e due il LI
(discendente del bambino) e UL
(discendente del nipote). Se pensi di pensare a questo usando l'esempio dell'albero genealogico, il
- sarebbe il genitore, il
- sarebbe il figlio di quell'elemento, e sarebbe il figlio del
- e il nipote del
- .
- ). Tutti gli altri link nella pagina che non sono discendenti di un elemento della lista non otterrebbero questo stile.
Una cosa importante da ricordare è che non importa quanti tag ci sono tra i tag che potresti usare nel tuo selettore discendente. Se il secondo elemento è racchiuso in un punto qualsiasi all'interno del primo elemento, verrà selezionato come discendente.
Se si desidera selezionare tutte le ancore discendenti da ul elementi, scrivere:
ul a {decorazione del testo: nessuna; }
Ora, questi stili si applicano a qualsiasi collegamento discendente da un elemento della lista. Potresti anche scrivere questo selettore
ul li a {text-decoration: none; }
Questo è un selettore discendente che utilizza più di due selettori di tipi. In questo caso, questo si applicherebbe ai collegamenti che si trovano all'interno di una lista-elemento e anche all'interno di una lista non ordinata.
Utilizzo di selettori di classe e selettori ID
I selettori da cui decidi non devono sempre essere di tipo discendente. Ad esempio, immagina di avere un'area del sito (come una divisione) con un attributo ID di "tabellone". È possibile impostare un selettore discendente su tale ID:
#billboard ul {background-color: #ccc; }
Questo modificherebbe l'elenco non ordinato che è un discendente di un elemento con un ID di "tabellone". Puoi fare lo stesso per i valori di classe.
div.billboard ul {background-color: #ccc; }
Ciò presuppone che la divisione abbia un valore di classe di "tabellone". Il CSS sopra avrebbe stile il
- elemento all'interno di qualsiasi divisione che ha questo valore di classe.
È possibile ottenere davvero pesanti e prolissi con i selettori discendenti. Ad esempio, se si utilizza Dreamweaver per scrivere il codice HTML, è disponibile un'impostazione quando si aggiungono nuove regole CSS che creeranno automaticamente il selettore in base alla posizione del cursore su quella pagina. Quello che Dreamweaver fa in questi casi è creare un selettore selvaggiamente prolisso e prolisso. Quella specificità non è necessaria perché il tuo CSS funzioni. Quello che vuoi fare è trovare un equilibrio tra un selettore discendente che è abbastanza specifico in modo che tu possa eseguire il drill-down sugli elementi esatti di cui hai bisogno (senza quelli di stile che non vuoi influenzare) senza avere regole CSS che hanno selettori che sono eccessivamente grande.
Quindi, come sceglieresti elementi specifici in una pagina web usando questi selettori discendenti? Innanzitutto, devi definire i selettori discendenti utilizzando due (o più) selettori di tipo separati da spazi.
li a {decorazione del testo: nessuno; }
In questo esempio, gli stili si applicano solo a un elemento link () che è un discendente di un elemento list-item (
- ). Tutti gli altri link nella pagina che non sono discendenti di un elemento della lista non otterrebbero questo stile.