2016-12-10 65 views
-1

對不起,沒有真正知道如何描述更好。頁面看起來像這樣CSS選擇不同課程之前的最後一堂課

注意:數據ID是隨機的,我不知道它們事先。

<main> 
    <h2 class="title">title1</h2> 
    <div id="1-3" class="content" data-id="1"></div> 
    <div id="1-2" class="content" data-id="1"></div> 
    <div id="1-1" class="content" data-id="1"></div> 

    <h2 class="title">title2</h2> 
    <div id="2-11" class="content" data-id="2"></div> 
    <div id="2-10" class="content" data-id="2"></div> 
    <div id="2-9" class="content" data-id="2"></div> 

    <h2 class="title">title3</h2> 
    <div id="3-18" class="content" data-id="3"></div> 
    <div id="3-17" class="content" data-id="3"></div> 
    <div id="3-16" class="content" data-id="3"></div> 
</main> 

有沒有什麼辦法來隱藏純CSS每個H2畢竟但上內容的div?我不能單獨使用id或data-id來定位他們。有沒有辦法選擇所有具有相同未指定屬性的元素?所以所有的數據ID =「相同」被選中,然後我可以取消隱藏nth-last-child(1)?我懷疑有這樣的事情。有什麼方法可以用CSS來完成這個任務嗎?

我目前隱藏每個.content,如果下一個兄弟不是.content與js但想知道它是否可能與CSS。

+0

所以你想在title3之後​​隱藏所有除了一個div的內容類嗎? –

+0

你究竟想要選擇什麼? – Oriol

+0

@Oriol我想顯示div id 1-1,2-9和3-16。並希望隱藏其他內容div。 – DD3R

回答

0

它不可能沒有任何scripting..you需要使用JavaScript或jQuery的

+0

是啊,我說我目前正在做這與JS,只是想知道如果我能沒有它度日。感謝你的回答。 – DD3R

+0

是的..如果可能的話它的想法.. – Darshak

+0

對不起? .... – DD3R

0

我會很想建議把的

<h2 class="title">title2</h2> 
<div id="2-11" class="content" data-id="2"></div> 
<div id="2-10" class="content" data-id="2"></div> 
<div id="2-9" class="content" data-id="2"></div> 

每一塊<section>裏面,像這樣:

<section> 
<h2 class="title">title2</h2> 
<div id="2-11" class="content" data-id="2"></div> 
<div id="2-10" class="content" data-id="2"></div> 
<div id="2-9" class="content" data-id="2"></div> 
</section> 

然後你可以...

div { 
 
display: none; 
 
width: 200px; 
 
height: 40px; 
 
color: rgb(255,255,255); 
 
} 
 

 
section:nth-of-type(1) div { 
 
background-color: rgb(255,0,0); 
 
} 
 

 
section:nth-of-type(2) div { 
 
background-color: rgb(0,127,0); 
 
} 
 

 
section:nth-of-type(3) div { 
 
background-color: rgb(0,0,255); 
 
} 
 

 
section div:last-of-type { 
 
display: block; 
 
}
<main> 
 
    <section> 
 
    <h2 class="title">Title 1</h2> 
 
    <div id="1-3" class="content" data-id="1">Div 1</div> 
 
    <div id="1-2" class="content" data-id="1">Div 2</div> 
 
    <div id="1-1" class="content" data-id="1">Div 3</div> 
 
    </section> 
 

 
    <section> 
 
    <h2 class="title">Title 2</h2> 
 
    <div id="2-11" class="content" data-id="2">Div 1</div> 
 
    <div id="2-10" class="content" data-id="2">Div 2</div> 
 
    <div id="2-9" class="content" data-id="2">Div 3</div> 
 
    </section> 
 

 
    <section> 
 
    <h2 class="title">Title 3</h2> 
 
    <div id="3-18" class="content" data-id="3">Div 1</div> 
 
    <div id="3-17" class="content" data-id="3">Div 2</div> 
 
    <div id="3-16" class="content" data-id="3">Div 3</div> 
 
    </section> 
 
</main>

+0

是的如果我可以修改HTML比它微不足道,但似乎我所問的是不可能與目前的CSS做。無論如何,我不再需要它了,所以沒什麼大不了的。 – DD3R

+0

嗯。你沒有提到你不能修改html。這不是一個正常的情況。而且,即便如此,取決於其他因素,隱藏所有div,但是在每個「h2」之後的最後一個div是完全可能的。舉例來說,如果你總是有一個'h2'其次是2隱藏'divs'其次可見'div',您可以使用選擇:'主:第n個孩子(4N-1),主要:第n個孩子( 4n-2)'隱藏隱藏的'divs'。 – Rounin

+1

是的,我沒有提到HTML,因爲我問是否可以在純CSS中完成。 h2之後的div數字有所不同,所以這種方法不起作用。這不再是一個問題,但我離開它與JavaScript的工作,因爲它不能用CSS來完成。謝謝你的幫助。 – DD3R