2015-11-06 6 views
5

तो मैं last-child प्राप्त करने के लिए इस क्वेरी है जब जब वहाँ 7 या अधिक तत्वोंसीएसएस पहले बच्चे 7 या अधिक बच्चों

li:nth-last-child(7) ~ li:last-child { 
    background: red; 
} 

यह रूप में लंबे समय 7 की एक न्यूनतम है के रूप में तत्वों के किसी भी संख्या के लिए काम करता हैं । मैं क्या करना चाहता हूं विपरीत है, first-child प्राप्त करें।

मैं निम्नलिखित

li:nth-last-child(7) ~ li:first-child { 
    background: red; 
} 

की कोशिश की लेकिन वह काम नहीं करता। अजीब मैं निम्नलिखित

li:nth-last-child(7) ~ li:nth-child(2) { 
    background: red; 
} 

मैं जानता हूँ कि यह है बहुत जटिल सीएसएस का उपयोग कर दूसरे बच्चे तत्व प्राप्त कर सकते हैं, और यहां तक ​​नहीं संभव हो सकता है, लेकिन अगर यह किया जा सकता है मैं सोच रहा हूँ। यदि संभव हो तो मैं जेएस का उपयोग नहीं करना चाहूंगा। मुझे लगता है कि एक चुनौती के रूप में इस का इलाज;)

+1

* (यह स्निपेट में n+7 के साथ काम नहीं कर रहा है किसी कारण से) अजीब मैं दूसरे बच्चे तत्व usin प्राप्त कर सकते हैं जी निम्नलिखित * क्या आप इसका डेमो बना सकते हैं? –

+0

@ManojKumar इस प्रश्न का अब एक स्वीकृत उत्तर के साथ उत्तर दिया गया है। यद्यपि टिप्पणी करने के लिए अपने समय की सराहना करते हैं। –

उत्तर

8

आप पहले तत्व का चयन कर सकते हैं जब वहाँ 7 या अधिक तत्वों नीचे चयनकर्ता का उपयोग करके कर रहे हैं:

div:first-child:nth-last-child(n+7) { 
    color: red; 
} 

स्पष्टीकरण:

  • nth-last-child(n+7) - सभी का चयन करेंगे लेकिन पिछले सात बाल तत्व। जब सात से कम बच्चे होते हैं, तो यह किसी से मेल नहीं खाएगा।
  • :first-child:nth-last-child(n+7) - केवल तत्व जो भी तत्व है जो अन्य भाग से मेल खाता के बीच पहला बच्चा है का चयन करेंगे (जो, केवल पहले बच्चे का चयन जब वहाँ सात या उससे अधिक बच्चे हैं)

.container > div:first-child:nth-last-child(n+7) { 
 
    color: red; 
 
}
<h3>Has seven children</h3> 
 
<div class='container'> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
</div> 
 

 
<h3>Has six children</h3> 
 
<div class='container'> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
</div> 
 

 
<h3>Has nine children</h3> 
 
<div class='container'> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
    <div>Test</div> 
 
</div>

Fiddle Demo

+0

मैं आपको चुंबन दे सकता हूं, मैं नहीं करूँगा, लेकिन मैं कर सकता था। इस सवाल पर विचार करें। धन्यवाद। मुझे परेशानी का एक पूरा ढेर बचाता है।मैं स्पष्ट रूप से सोच रहा था कि मुझे जितना जटिल होना चाहिए था उससे ज्यादा जटिल था। –

+0

@AlexMcCabe: आपका स्वागत है दोस्त :) मुझे इन तरह के प्रश्न पसंद हैं। – Harry

-1

पहला तत्व है कि आप अपने सीएसएस में इस मॉडल के पहले इस्तेमाल कर सकते हैं के लिए। उदाहरण:

p:first-of-type { 
     background: #ff0000; 
    } 
+0

अच्छी तरह से, कृपया कोई जवाब देने से पहले प्रश्न पढ़ें ..ओपी ने पहले बच्चे को रंग देने के लिए नहीं पूछा था। और चिंता न करें मैंने वोट नहीं दिया .. –

+0

मैंने एक उदाहरण दिया, इस मंच का अर्थ लोगों को जवाब नहीं दे रहा है बल्कि उन्हें कोशिश करने और सीखने की अनुमति देता है .. मैं बस इस पर एक संभावित तरीका देने की कोशिश कर रहा था इसे हल किया जा सकता है। –

+0

दुर्भाग्य से दोस्त यह केवल मुझे सभी मामलों में पहला बच्चा देता है। –

संबंधित मुद्दे