2013-06-14 9 views
8

ich habe einige '<a> <i> <label>' in meine Seite wie unten mit der KlasseWie bestimmte Wörter aus der Klasse in CSS verwenden?

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

ich brauche mit margin-right:10px CSS zu erstellen, wenn Klasse mit "icon-"

soetwas wie unten beginnen:

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

Ich würde eine andere Klasse hinzufügen und das verwenden, wenn ich dies tun würde. Beispiel: 'class =" icons icon-home ">' dann '.icons {margin-right: 10px}' –

Antwort

11

Try dies:

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

@Zenith Ich weiß, aber was ist, wenn er zwei Klassen hat? –

+0

Ich habe den Platz vor dem zweiten nicht bemerkt - gute Arbeit :) – lifetimes

+0

Was ist besser für die Leistung - tun Sie einen Selektor wie dies oder fügen Sie eine zusätzliche Klasse namens Symbol zu allen Objekten und dann mit '.icon {}'? – Pete

0

können Sie dieses

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

Der Stern bezeichnet verwenden, dass das Verfahren Wert irgendwo im Klassenwert erscheinen. Auf diese Weise deckt diese icon-

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

Dies ist ein Kinderspiel mit dem Karat-Symbol ist. Es wird am häufigsten in regulären Ausdrücken verwendet, um den Anfang einer Zeichenfolge festzulegen. Wenn wir alle Tags mit einer class, die mit icon- beginnt, als Ziel verwenden möchten, könnten wir einen Selektor verwenden, der dem oben gezeigten Snippet ähnelt.

+2

Ich sehe nicht, wo "Col" mit dieser Frage etwas zu tun hat - können Sie bitte erläutern? –

+0

es ist ein Klassenname Sie können es nach Ihren Wünschen ändern –

+0

@MarkSchultheiss Ich habe meine Antwort aktualisiert, was Sie jetzt sagen –

0

Sie auch die Strich-Spiel Syntax verwenden:

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

Das wird richtig passen:

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

... mit dem Nutzen hinzugefügt der auch wie etwas passend:

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

... während dies immer noch aus:

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

Dieser Ansatz hat auch einige Einschränkungen:

  • nicht wählen, wenn es ein Leerraum nach dem „Symbol“ ist
  • Symbol muss am Anfang der Klasse Attribut String (wie bei ^=)

Tests hier: http://jsfiddle.net/mhfaust/Bh95t/

Verwandte Themen