Что происходит
Я столкнулся с проблемой. У меня есть такое меню:
<div id='feeds'>
<div class='feed'>Super Dense</div>
<div class='feed'>Everything</div>
<div class='feed current-feed'>Smashing Magazine Feed</div>
<div class='feed'>Hot Questions - Stack Exchange</div>
</div>
Я оформляю это с помощью CSS (здесь отображаются только свойства границ и фона):
.feed {
background: -webkit-gradient(linear, left top, left bottom, from(#DDD), to(#CCC));
border-bottom: solid 1px #AAA;
border-left: solid 1px #AAA;
border-right: solid 1px #AAA;
}
.feed:first-child {
border-top: solid 1px #AAA;
}
.feed.current-feed, .feed:active {
background: -webkit-gradient(linear, left top, left bottom, from(#333), to(#444));
border-bottom: solid 1px #000;
border-left: solid 1px #000;
border-right: solid 1px #000;
}
.feed.current-feed:first-child, .feed:active:first-child {
border-top: solid 1px #000;
}
Это результат ( просмотр на jsFiddle Только WebKit):
Да, Джефф, весь дополнительный трафик фидов Stack Exchange приходит от меня, постоянно перезагружающего мой читатель фидов. Извините:)
Проблема
Это может выглядеть красиво, но есть небольшая проблема. Над черным ящиком есть линия #AAA, и это выглядит не очень (пиксельное совершенство):
Мой вопрос
Есть ли способ в CSS проверить, принадлежит ли следующий элемент определенному классу, поэтому я могу установить border-bottom
в solid 1px #000
или есть другой способ решить мою проблему?
Мое веб-приложение интенсивно использует JavaScript, поэтому, если это требуется, это не проблема, но, на мой взгляд, CSS чище.