2012-06-07 2 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> 

Как я могу создавать каждый второй класс в чистом css.Как я могу получить каждый второй элемент, если каждый из них встроен в другой?

В JQuery Я хотел бы сделать

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

Но как я могу это сделать CSS?

ответ

12

Вы можете использовать :nth-child свойства для этого:

Примера:

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

:nth-child(2) выберет только второй элемент, в то время как :nth-child(2n) подберет каждый второго пункта.

+4

На самом деле я думаю, ваш код будет только стилизовать один (второй) элемент, но OP запросил ** каждый ** второй элемент, и поэтому CSS должен быть: '.question_con tainer: nth-child (2n) .views' – Andrej

+0

@sandeep спасибо, он работал с Andrej 2n не 2. Измените это, и я соглашусь. Спасибо за вашу помощь – yehuda

+0

@Andrej благодарит меня за исправление :) – sandeep

0

Как @Andrej и @sandeep сказал, что делает работу:

<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

Ну вы можете сделать окно, чтобы быть у половины widht (50%)? После их поплыл влево, а затем ясно, будет лучшим решением

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

Вот скрипку: https://jsfiddle.net/r5xq9von/

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