2012-01-12 2 views
3

У меня есть вложенные элементы DIV, для которых я не знаю уровней гнездования. Мне нужно, чтобы у каждого был другой фон, чем его родитель, создающий зебра-подобные цвета. Я использую только два фона - темный и белый. Эффект должен быть похож на стиль нечетных и четных детей в контейнере, но в моем случае дети вложены. Я могу сделать это с помощью правил для каждого вложенного элемента, таких как:Zebra-like css styling для вложенных DIV

div div div div { 
    background-color: #fff; 
} 

div div div { 
    background-color: #aaa; 
} 

div div { 
    background-color: #fff; 
} 

div { 
    background-color: #aaa; 
} 

Но я ищу более элегантное решение. Можно ли это сделать только с помощью CSS? Мне нужен javascript?

Любые предложения будут высоко оценены.

Изменить: Я ищу решение, которое не потребует элементы иметь класс, так как они должны быть перестроены с сопротивлением & капли (JavaScript)

+0

не решение, но вы могли бы упростить выше css, группируя элементы: 'div, div div div, div div div div div {...}' и 'div div, div div div div {...}'. –

+0

AS для фактического решения, я бы просто использовал javascript и даже/нечетные классы, так как вы все равно используете javascript для перетаскивания. –

+0

Я, вероятно, поеду с этим. Спасибо вам всем. – Vladimir

ответ

1

UPDATE: это решение уже не актуально учитывая обновление вопроса. Оставляем его здесь для справки.

я бы просто использовать "даже" и "нечетные" классы (или что-то эквивалент):

div.even { 
    background-color: #fff; 
} 

div.odd { 
    background-color: #aaa; 
} 

, а затем в HTML:

<div class="even"> 
    <div class="odd"> 
     <div class="even"> 
      <div class="odd"> 
       ... 
      </div> 
     </div> 
    </div> 
</div> 
+0

Да, я считал это, но элементы также должны быть переупорядочены пользователем. Я отредактировал свой вопрос. Спасибо за ваш ответ. – Vladimir