2010-12-09 7 views
3

Ich muss einen Stil für das div in der ersten faq-category-group-Klasse festlegen, ohne den Stil der faq-category-group zu beeinflussen ein FAQ-Kategorie-Einzug. Wie kann das gemacht werden?Wie wende ich einen CSS-Stil an eine Klasse an, die keine Unterklasse enthält

Die Klassen werden automatisch von einem PHP-Modul generiert. Daher ist es nicht möglich, die Klassennamen zu ändern, um die Selektoren einfacher zu machen.

<div class="faq"> 
    <div class="faq-category-group">Content</div> 

    <div class="faq-category-indent"> 
     <div class="faq-category-group">Content</div> 
    </div> 
</div> 
+0

@zanlok: Das Markup wurde nicht korrekt eingerückt, daher wurde es als HTML interpretiert. Ich habe es behoben. – BoltClock

Antwort

2

Durch diese Struktur, wählen Sie nur Gruppen, die Kinder von <div class="faq"> und anwenden, um die Stile, die Sie gegliederten Gruppen angewendet nicht wollen. Die Gruppen, die in <div class="faq-category-indent"> enthalten sind, sind nicht betroffen.

.faq .faq-category-group { 
    /* Styles for all groups */ 
} 

.faq > .faq-category-group { 
    /* Styles for non-indented groups */ 
} 

Dies setzt natürlich voraus, dass Sie sich nicht um IE6 kümmern. Ansonsten ist eine weitere, ausführlichere Lösung dieses:

.faq .faq-category-group, .faq .faq-category-indent .faq-category-group { 
    /* Styles for all groups */ 
} 

.faq .faq-category-group { 
    /* 
    * Styles for non-indented groups. 
    * Works because .faq .indent .group above is more specific than 
    * this one, so the above rule will override this one. 
    */ 
} 

hier ein jsFiddle example ist, dass beide Fälle abdeckt.

+0

IE7 und IE8 scheinen auch ein Problem mit der ersten Probe zu haben (zumindest so, wie ich sie getestet habe). –

+0

@Joel: [Works für mich] (http://jsfiddle.net/BoltClock/NY5WS/) – BoltClock

+0

Ich bin irgendwie zu "Stand korrigiert". Wenn Sie Ihren Link sehen, sehe ich, dass es funktioniert. Wenn Sie Ihren Stil in meinen Test einfügen, funktioniert das nicht. Ich kann den Grund für den Unterschied nicht erklären, daher werde ich feststellen, dass meine Tests nicht sinnvoll sind. –

0
.faq > .faq-category-group { 
    /*style*/ 
} 

sollte funktionieren

Quelle: http://www.w3.org/TR/css3-selectors/

+0

Dies funktioniert nur in css3. Dies schlägt in kleineren Versionen fehl. –

+0

@Joel: Nein, '>' ist ein CSS2 Selektor. Es schlägt nur in IE <= 6 fehl. – BoltClock

+0

@BoltClock - Ich habe es gerade in IE7 und IE8 getestet, und es ist fehlgeschlagen. –

1

Sie haben individuell den Unterschied in den Klassen zu spezifizieren:

.faq .faq-category-group 
{ 
    color: #00ff00; 
} 

.faq .faq-category-indent .faq-category-group 
{ 
    color: #0000ff; 
} 

Dies wird den einen nach dem übergeordneten Stil zwingen .faq und die andere nach dem Stamm .faq-category-indent.

Verwandte Themen