2012-12-03 4 views
2

Мне интересно, есть ли способ применить стиль CSS к элементу только в том случае, если перед ним вставлен определенный элемент. Например, применить свой стиль, только если .foo появляется непосредственно перед .bar:Применить стиль только в том случае, если определенный класс до

<div class="foo"></div> 
<div class="bar"></div> //apply style 

<div class="dur"></div> 
<div class="bar"></div> //do not apply style 

<div class="bar"></div> //do not apply style 
+0

Я бы использовал контейнеры, поскольку это поведение имеет тенденцию происходить в группах. Или это произойдет в отношении границ или что-то в этом роде, и тогда вы можете просто нацелиться на «.foo». Я хотел бы видеть ваш код, так как иногда задаваемый вопрос задают, не понимая других способов сделать то же самое. – zeMinimalist

ответ

4

Да, с помощью CSS3 вы можете сделать

.foo + .bar { 

} 

для целевой .bar, который сразу же после .foo.

См. w3.org reference для вариантов (например, после, но не обязательно сразу после).

Отметьте, что you can't use this on IE7 and it doesn't work perfectly on IE8.

+0

Спасибо. Это именно то, что я ищу. – Jon

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