2012-06-07 12 views
10
<div class="question_container"> 
    <div class="views"> 
     <div>10</div> 
    </div> 
    <div>Something else</div> 
</div> 
<div class="question_container"> 
    <div class="views"> 
     <div>10</div> 
    </div> 
    <div>Something else</div> 
</div> 
<div class="question_container"> 
    <div class="views"> 
     <div>10</div> 
    </div> 
    <div>Something else</div> 
</div> 

W jaki sposób można ustawić co drugi widok klas w czystym css.Jak mogę uzyskać co drugi element, jeśli każdy jest osadzony w innym?

w jQuery zrobiłbym

$('*[class=views]:even').addClass('views'); 

Ale jak mogę to zrobić z CSS?

Odpowiedz

12

Można użyć właściwości :nth-child na to:

Przykład:

.question_container:nth-child(2n) .views{ 
    color: red; 
} 

:nth-child(2) wybierze tylko drugi element, a :nth-child(2n) wybiorą każdy sekund elementu.

+4

Właściwie myślę Twój kod będzie stylem tylko jeden (drugi) element, ale OP będzie pytał o ** co ** drugi element i dlatego CSS powinien być: '.question_con tainer: nth-child (2n) .views' – Andrej

+0

@ Dziękuję, zadziałało z Andrej 2n nie 2. Zmień to i przyjmuję. Dzięki za pomoc – yehuda

+0

@Andrej dzięki za poprawienie mnie :) – sandeep

0

Jak @Andrej i @sandeep powiedział, to działa:

<style> 
.question_container:nth-child(2n) .views{ 
    color: red; 
} 
</style> 

<div class="question_container"> 
    <div class="views"> 
     <div>10</div> 
    </div> 
    <div>Something else</div> 
</div> 
<div class="question_container"> 
    <div class="views"> 
     <div>10</div> 
    </div> 
    <div>Something else</div> 
</div> 
<div class="question_container"> 
    <div class="views"> 
     <div>10</div> 
    </div> 
    <div>Something else</div> 
</div> 

https://jsfiddle.net/pxmqc1au/

0

Cóż można uczynić pole będzie mieć połowę szer (50%)? o nich płynął w lewo, a następnie jasne będzie najlepszym rozwiązaniem

HTML:

<div class="legend-box"> 
    <div class="box"> [] box 1 </div> 
    <div class="box"> [] box 2 </div> 
    <div class="box"> [] box 3 </div> 
    <div class="box"> [] box 4 </div> 
    <div class="box"> [] box 5 </div> 
    <div class="box"> [] box 6 </div> 
    <div class="clear"></div> 
</div> 

CSS:

.box { 
    display: inline-block; 
    width: 50%; 
    float: left; 
} 

.clear { 
    clear: both; 
} 

Oto skrzypce: https://jsfiddle.net/r5xq9von/

Powiązane problemy