2016-01-08 2 views
0

Мне нужно скрыть все, кроме первого h3, в списке контейнеров. Они содержат только классы.CSS-селектор для скрытия элементов вложенных

<div class="preview"> 
    --content 
</div> 
<div class="preview evaluation"> 
    <h3>Heading</h3> <!-- should stay --> 
</div> 
<div class="preview evaluation"> 
    <h3>Heading</h3> <!-- should hide --> 
</div> 
<div class="preview evaluation"> 
    <h3>Heading</h3> <!-- should hide --> 
</div> 

Мне нужно сделать это только с помощью css.

+3

'.evaluation h3 {display: none; } 'должен делать трюк ... –

+0

@ RaphaelMüller Это может быть или не быть (в зависимости от того, имеют ли контейнеры другие элементы, и если первый' h3' всегда находится внутри '.preview'). – Harry

+1

@ RaphaelMüller: Тем не менее это может не быть в зависимости от того, какие другие элементы существуют и как назначаются классы. На мой взгляд, на вопрос нужно добавить дополнительную информацию. – Harry

ответ

1

Обновленный ответ в соответствии с отредактированной вопрос ...

Если вы хотите, чтобы скрыть только <h3> элементы, то:

.evaluation>h3 { display: none; } 
.evaluation:nth-of-type(2)>h3 { display: block; } 

Если вы хотите, чтобы скрыть <div> элементы, содержащие элементы <h3> , затем:

.evaluation { display: none; } 
.evaluation:nth-of-type(2) { display: block; } 

В качестве альтернативы вы можете сделать ...

.evaluation:not(:nth-of-type(2))>h3 { display: none; } 

или ...

.evaluation:not(:nth-of-type(2)) { display: none; } 
+0

Нет, я хочу сохранить первый h3, но скрыть другие. До сих пор ответы на них скрывали все. –

+0

Я попробовал свой первый вариант, но не работал –

+0

Взгляните на эту ручку: http://codepen.io/anon/pen/rxmYNg –

1

Если он всегда будет иметь структуру в вашем примере:

.evaluation + .evaluation h3 {display:none} 
+0

Но вам нужно предоставить все возможные конфигурации, если вам это нужно, чтобы работать на что угодно остальное. – andi

+0

Это решение сработало в моем случае. –

Смежные вопросы