Sono “div> p” e “div p” stesso?
-
08-10-2019 - |
Domanda
Ciao, ho una domanda ovvia.
Per il codice come:
<div>
<p>We want to format this text :)</p>
</div>
Alcune persone usano selettore del tipo:
div > p {
something
}
e gli altri:
div p {
something
}
Qual è la differenza in questo caso? A mio parere -? None
E tra l'altro, non è l'elemento discendente sempre un bambino ?! Qual è la differenza tra i due? Sto leggendo w3.org ma non riesco a farlo:)
Grazie!
Soluzione
Semplice:
div > p
influisce solo figli diretti.
div p
colpisce nipoti, grandgrandchildren ecc pure. (non farà la differenza nel tuo esempio)
Il bambino selettore non è supportato da IE6 .
Altri suggerimenti
Pekka ha spiegato che, in teoria, in sua risposta . Sulla base della sua risposta e la mia risposta a un'altra domanda circa il combinatore >
, fornirò un esempio, modificato per rispondere a questa domanda.
Si consideri il seguente blocco di codice HTML, e le tue selettori CSS esempio. Io uso un esempio più elaborato in modo da poter mostrare la differenza tra entrambe le selettori:
<div>
<p>The first paragraph.</p> <!-- [1] -->
<blockquote>
<p>A quotation.</p> <!-- [2] -->
</blockquote>
<div>
<p>A paragraph after the quotation.</p> <!-- [3] -->
</div>
</div>
Quali <p>
s vengono selezionati dai quali selettori?
Prima di tutto, tutti loro corrisponde div p
, perché sono elementi <p>
situati ovunque all'interno un elemento <div>
.
che rende div > p
più specifici, il che pone la domanda seguente:
Quali <p>
s sono selezionati da div > p
?
-
selezionato
Questo paragrafo
<p>
è un bambino, o di un discendente diretto, del<div>
più esterno. Ciò significa che non è immediatamente compreso da qualsiasi altro elemento di un<div>
. La gerarchia è semplice come il selettore descrive, e come tale è selezionato daldiv > p
. -
Non selezionata ??strong>
Questo
<p>
è situato in un elemento<blockquote>
, e l'elemento<blockquote>
si trova nel<div>
più esterno. La gerarchia sarebbe quindi simile a questa:div > blockquote > p
Mentre il paragrafo è direttamente contenuta da una blockquote, è di non selezionati da
div > p
. Tuttavia, possono partitablockquote > p
(in altre parole, si tratta di un figlio del<blockquote>
). -
selezionato
Questo paragrafo vive nel
<div>
interna, che è contenuta dal<div>
esterno. La gerarchia sarebbe simile a questa:div > div > p
Non importa se ci sono più
<div>
s annidati uno dentro l'altro, o anche se le<div>
s sono contenuti da altri elementi. Finché questo paragrafo è direttamente contenuta dal proprio<div>
, sarà selezionato dadiv > p
.