2009-07-30 1 views
88

Ho trovato questo codice CSS e mi sono imbattuto per vedere cosa fa e ha delineato ogni elemento della pagina,Cosa fa un asterisco (*) in un selettore CSS?

qualcuno può spiegare che cosa l'asterisco * fa in CSS?

<style> 
* { outline: 2px dotted red } 
* * { outline: 2px dotted green } 
* * * { outline: 2px dotted orange } 
* * * * { outline: 2px dotted blue } 
* * * * * { outline: 1px solid red } 
* * * * * * { outline: 1px solid green } 
* * * * * * * { outline: 1px solid orange } 
* * * * * * * * { outline: 1px solid blue } 
</style> 
+14

Solo per divertimento, @jasondavis, ma è scritto "asterisco". Sai come lo ricordo? Nathan Hale ha detto che si rammarica di averne solo uno per il suo paese. :-) Prendilo? Chiunque? Chiunque? Bueller? – Rap

+1

Interessante ... Non ho mai visto nidificato "*" prima. Scommetto che questo crea solo un bordo colorato arcobaleno =) –

+8

Asterix è un personaggio dei fumetti preferito, arrivando a pensarci. – futureelite7

risposta

85

È un carattere jolly, questo significa che selezionerà tutti gli elementi all'interno di quella porzione del DOM.

Per esempio, se voglio applicare margine per ogni elemento sulla mia intera pagina è possibile utilizzare:

* { 
    margin: 10px; 
} 

È anche possibile utilizzare questo all'interno di sotto-selezioni, ad esempio, il seguente sarebbe aggiungere un margine a tutti elementi all'interno di un tag di paragrafo:

p * { 
    margin: 10px; 
} 

Il tuo esempio sta facendo un po 'di CSS inganno per applicare i bordi consecutivi e margini per gli elementi per dare loro più confini colorati. Ad esempio, un bordo bianco circondato da un bordo nero.

+0

Qual è il vantaggio dell'uso di 'p *' rispetto all'utilizzo di 'p'? –

+5

Non c'è un "vantaggio", è solo come si selezionano tutti gli elementi discendenti all'interno di un tag 'p'. Quindi se hai un 'span',' b', 'strong',' img', ecc. Nel tuo paragrafo, selezionerebbe quelli e applicherebbe loro gli stili. – Soviut

4

* è un carattere jolly. Ciò significa che applicherà lo stile a qualsiasi elemento HTML. Altro * applica lo stile a un livello corrispondente di nidificazione.

Questo selettore applica diversi contorni colorati a tutti gli elementi di una pagina, a seconda del livello di nidificazione degli elementi.

4

* funge da jolly, proprio come nella maggior parte degli altri casi.

Se lo fai:

*{ 
    margin: 0px; 
    padding: 0px; 
    border: 1px solid red; 
} 

Poi tutti elementi HTML avranno quegli stili.

27

Il codice CSS a cui si fa riferimento è molto utile per un web-designer per il debug dei problemi di impaginazione. Spesso lo faccio cadere temporaneamente nella pagina in modo da poter vedere la dimensione di tutti gli elementi della pagina e rintracciare, per esempio, quella che ha troppa imbottitura che sta spingendo fuori posto altri elementi.

Lo stesso trucco può essere fatto con solo la prima riga, ma il vantaggio di definire più contorni è che si ottiene un indizio visivo tramite il colore del bordo alla gerarchia degli elementi di pagina nidificati.

+0

Molto interessante, mai pensato prima! –

+2

Anche se oggigiorno il browser costruito negli ispettori è molto più efficace, no? O usando firebug. –

+0

@SoftwareMonkey - Sì, in questi giorni è vero. Gli ispettori build-in sono fantastici. Ad esempio, io uso Chrome e faccio 'Ctrl + Shift + c', quindi passa il mouse su un elemento e Chrome colora lo sfondo. Molto più veloce che abbandonare questo stile di asterisco nel CSS. – Tom

0

nel foglio di stile, normalmente è necessario definire la regola di base per tutti gli elementi, ad esempio attributo e margini della dimensione del carattere. {font-size: 14px; margin: 0; padding: 0;} / overide impostazioni predefinite del browser sugli elementi, tutte le dimensioni dei caratteri del testo saranno visualizzate a 14 pixel con margine e riempimento, compreso h1, ... pre. */