2013-06-14 12 views
8

ho qualche '<a> <i> <label>' nella mia pagina come qui di seguito con la classeCome usare una parola particolare della classe in css?

<a class="icon-home"></a> 
<label class="icon-pencil"></label> 
<i class="icon-display"></i> 

Ho bisogno di creare CSS con margin-right:10px quando la classe inizia con "icon-"

qualche cosa come di seguito:

<style> 
.icon-* {margin-right:10px} 
</style> 
+2

Vorrei aggiungere un'altra classe e usarla se lo facessi. Esempio: 'class =" icons icon-home ">' then '.icons {margin-right: 10px}' –

risposta

11

Try this:

[class^="icon-"], [class*=" icon-"] { 
    margin-right: 10px; 
} 
+0

@Zenith Lo so, ma cosa succede se ha due classi? –

+0

Non ho notato lo spazio prima del secondo - buon lavoro :) – lifetimes

+0

Cosa c'è di meglio per le prestazioni - facendo un selettore come questo o aggiungendo una classe extra chiamata icona a tutti gli oggetti e quindi usando '.icon {}'? – Pete

0

è possibile utilizzare come questo

[class*="icon-"]{ margin-right:10px; }

La stella indica che il valore di procedere deve comparire da qualche parte nel valore di classe. In questo modo, questa copre icon-

[class^="icon-"]{ margin-right:10px; }

Questo è un gioco da ragazzi con il simbolo carati. È più comunemente usato nelle espressioni regolari per designare l'inizio di una stringa. Se vogliamo scegliere come target tutti i tag che hanno un class che inizia con icon-, potremmo utilizzare un selettore simile allo snippet mostrato sopra.

+2

Non vedo dove "col" abbia qualcosa a che fare con questa domanda - puoi elaborare per favore? –

+0

è un nome di classe che puoi modificare secondo te –

+0

@MarkSchultheiss ho aggiornato la mia risposta cosa dici ora –

0

Si potrebbe anche usare la sintassi dash-partita:

[class|="icon"]{ margin-right:10px; } 

Questo corrisponderà correttamente:

<a class="icon-home"></a> 
<label class="icon-pencil"></label> 
<i class="icon-display"></i> 

... con l'aggiunta beneficio di corrispondenza anche qualcosa di simile:

<a class="icon"></a> /* No hyphen required */ 

... mentre si tiene fuori questo:

<a class="icons"></a> 
/* Won't match this. "icon" can *only* be followed by a dash */ 

Questo approccio presenta alcune limitazioni troppo:

  • non selezionerà se c'è un bianco-spazio dopo "icona"
  • icona deve essere all'inizio della stringa attributo di classe (come con ^=)

Prove qui: http://jsfiddle.net/mhfaust/Bh95t/

Problemi correlati