2013-04-26 2 views
5

यह संभव पहले <th> पहले <tr> के कम से नियम लागू है, अगर वहाँ 2 या <thead> में <tr> अधिक कर रहे हैं?सीएसएस: पहला <tr><th> पर नियम लागू अगर वहाँ 2 <tr>

मैंने किया:

table tr:first-child th:first-child 

लेकिन अगर वहाँ केवल 1 <tr> ti वैसे भी लागू होते हैं।

+0

आप कुछ डिफ़ॉल्ट शैली है, तो आप यह 'टीआर के लिए आवेदन कर सकते हैं केवल बच्चे के मामले में "ओवरराइड"। – Passerby

उत्तर

7

तुम इतनी तरह :not() और :only-child चयनकर्ताओं के संयोजन का उपयोग कर सकते हैं:

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

कोड अपेक्षाकृत आत्म व्याख्यात्मक है, यह केवल पहले बच्चे को प्रभावित करेगा कि यह एक इकलौती संतान नहीं है।

DEMO

यह support हालांकि अपेक्षाकृत खराब है, तो आप एक javascript polyfill जरूरत है इसके लिए बनाने के लिए है, तो आप नीचे दिए गए IE8 या समर्थन करने के लिए आवश्यकता हो सकती है।

+0

अच्छा एक :) @ एंडी – Ashwin

+0

मुझे लगता है कि यह वही है जो मुझे चाहिए। तो यह केवल नए ब्राउज़र के लिए और आईई> = 8 के लिए काम करता है? – Atomico

+1

@ एटॉमिको नो, [आईई> 8 के लिए (यानी आईई> = 9)] (https://developer.mozilla.org/en-US/docs/CSS/:not#Browser_compatibility)। – Passerby

0

मुझे नहीं लगता कि यह सीएसएस class का उपयोग किए बिना संभव है। यदि आप गतिशील रूप से tr बना रहे हैं। मैं नीचे के रूप में करने के लिए सिफारिश करेंगे:

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> 
} 

सीएसएस: केवल वाले बच्चे वें: करने के लिए पहली child`

applyCSS { .... } 
संबंधित मुद्दे