2015-07-27 3 views
1

у меня есть DOM дерево, которое выглядит примерно так (в виде регулярных выражений):CSS неизвестное количество промежуточных элементов

div.container (div.notbox | div.box)+ 

Теперь мне нужно так выбрать все «первый уровень» .box детей. Давайте предположим следующий документ:

<div class="container"> 
    <div> 
     <div class="box" id="1"> 
      <div class="box" id="2"></div> 
     </div> 
    </div> 
    <div class="box" id="3"></div> 
</div> 

В этом случае я должен был бы выбрать # 1 и # 3, но не # 2. Есть ли способ сформулировать это с помощью запроса CSS? Что-то вроде

.container > :not(.box) > .box 

но повторяйте: не (.box) статью неопределенное количество раз?

+0

PS: если кто-то знает лучшее имя для вопроса; Я открыт для предложений – jvataman

+0

Попытка понять вашу цель: вы пытаетесь выбрать все элементы .box, которые сами не являются дочерними .box? –

+0

http://stackoverflow.com/a/4220347/1132354 – nikhil

ответ

0

Возможно, таким образом:

.box {/* styles */} 
.box .box {/* styles */} 

Во всяком случае я бы suddgest вам создавать различные классы:

<div class="container"> 
<div> 
    <div class="box" id="1"> 
     <div class="childBox" id="2"></div> 
    </div> 
</div> 
<div class="box" id="3"></div> 

Или, если же стили необходимы плюс стили childBox:

<div class="container"> 
<div> 
    <div class="box" id="1"> 
     <div class="box childBox" id="2"></div> 
    </div> 
</div> 
<div class="box" id="3"></div> 

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