2016-03-03 35 views

risposta

7

Il selettore p::first-letter seleziona la prima lettera all'interno dello p mentre lo p ::first-letter seleziona la prima lettera all'interno degli elementi figlio dello p.

p ::first-letter è equivalente a p *::first-letter. Il sotto è ciò che il specs dire:

Se un selettore universale rappresentato da * (cioè senza un prefisso namespace) non è l'unico componente di una sequenza di semplici selettori o è immediatamente seguita da una pseudo-elemento, allora il * può essere omesso e la presenza del selettore universale implica.

Nota: Anche se il selettore (p ::first-letter) si punti alla prima lettera all'interno tutti gli elementi figlio, il selettore ::first-letter funziona solo su elementi di blocco o inline-block e perciò non potrebbe lavorare su un span meno il suo display è stato modificato.

p ::first-letter { 
 
    color: red; 
 
} 
 
p::first-letter { 
 
    color: blue; 
 
} 
 

 
span{ 
 
    display: inline-block; 
 
}
<p>Some text <span>inside a span</span> and <span>inside this span too</span> 
 
</p>

+0

Dovresti davvero chiuderli come duplicati. :) –

+0

@Paulie_D Got web-tiki per martellarlo. Ho lasciato la mia risposta perché è perché alcuni di noi hanno sentito che la mia risposta ha più informazioni. – Harry

+1

S'fine da me ... Ho ripulito i miei commenti ... potresti voler fare lo stesso. –

0

p ::first-letter significa cambiare lo stile della prima lettera di qualsiasi elemento che è un discendente di p. Mentre lo p::first-letter significa cambiare la prima lettera dell'elemento p.

+0

Non è vero. Lo spazio indica che il selettore è un [combinatore discendente] (https://developer.mozilla.org/en-US/docs/Web/CSS/Descendant_selectors) (cioè seleziona la prima lettera di tutti i bambini, i nipoti, ecc. Elementi all'interno del tag 'p') ... – War10ck

+0

Sono corretto. Ho modificato la mia risposta. – kojow7