03 1 / 2011
Как расположить горизонтально CSS-кнопки?

А в чем вопрос? Любой HTML+CSS верстальщик превосходно знает, что для того чтобы расположить элементы горизонтально есть, как минимум, решение базирующееся на создании списка
<ul>
<li>
item1
</li>
<li>
item2
</li>
<li>
item3
</li>
</ul>
Извините, это не WordPress и подсветки цитат кода в Тумблере нет; он даже табуляции не показывает :(
Потом список упаковывается в div со следующим определением горизонтального расположения элементов списка (в данном случае я использую селектор smartnav):
#smartnav ul li {
display:inline-block;
}
Вопрос решен. Да. А если вам надо горизонтально вывести CSS-кнопки у которых при наведении должен меняться фон? Фон кнопки больше фона текстовой ссылки и для его отображения необходимо использовать определение display: block, т.е. делать из нее кнопку с фоном.
Но у нас уже есть display:inline-block за счет которого наши кнопки выстраиваются горизонтально. Что делать?
Достаточно добавить «прокладку» в виде span, заключив в нее текст ссылки. Определить display:block для span, оставив display:inline-block для элемента списка li.
В итоге получим:
#smartnav {
/*здесь вы задаете форматирование всего блока с кнопками*/
}
#smartnav ul li {
display:inline-block; /*определение вывода кнопок горизонтально через элементы списка*/
}
#smartnav ul li span a:link, #smartnav ul li span a:visited {
display:block; /*определение вывода ссылок блоком*/
background-image: url(img/index/smart-nav-bg-regular.gif); /* фон без наведения указателя мыши*/
}
#smartnav ul li span a:hover, #smartnav ul li span a:active {
background-image: url(img/index/smart-nav-bg-over.gif);
/* фон при наведении указателя мыши*/}
Чтобы вас не грузить я опустил в листинге определения не имеющие отношения к теме.