2013-04-26 2 views
5

Ist es möglich, eine Regel beim ersten <th> der ersten <tr> gilt, wenn es 2 oder mehr <tr> in <thead> ist?css: apply Regel auf dem ersten <tr><th> bei 2 <tr>

ich getan habe:

table tr:first-child th:first-child 

aber wenn es nur 1 <tr> ti gelten ohnehin ist.

+0

Wenn Sie einige Standard-Stil haben, können Sie es auf 'tr gelten: nur-Kind th: first-child' zu "override" im Falle von nur Kind. – Passerby

Antwort

7

Sie können wie so eine Kombination der :not() und :only-child Selektoren:

tr:first-child:not(:only-child) th:first-child { 
    color:red; 
} 

-Code erklärend relativ selbst ist, es wird nur das erste Kind auswirken, wenn es nicht ein einziges Kind ist.

DEMO

Es hat relativ schlechte support aber, Sie könnten einen javascript polyfill benötigen dafür zu machen, wenn Sie IE8 unterstützen müssen oder unten.

+0

gute one :) @Andy – Ashwin

+0

ich sehe, dass dies tun, was ich brauche. also funktioniert es nur für neue Browser und für IE> = 8? – Atomico

+1

@Atomico Nein, [für IE> 8 (d. H. IE> = 9)] (https://developer.mozilla.org/en-US/docs/CSS/:not#Browser_compatibility). – Passerby

0

Ich glaube nicht, dass dies ohne Verwendung von CSS class möglich ist. Wenn Sie trs dynamisch erstellen. Ich würde empfehlen, wie unten zu tun:

if(condition for rows > 2) { 
    <tr><th class="applyCSS"></th><th></th></tr> 
    <tr><th></th><th></th></tr> 
    ...... 
} 
else {  //only one tr 
    <tr><th></th><th></th></tr> 
} 

CSS:

applyCSS { .... } 
Verwandte Themen