Ja znam tylko 3 sposoby na menu poziome. Oczywiście rozmawiamy o strukturze typu:
Kod
<ul><li><a>blabla1</a></li><li><a>blabla2</a></li>......<li><a>blablaN</a></li></ul>
1) Display:inline dla li.
Kod
li{display:inline;}
.
2) float-y.
Kod
li{float:left (albo right :D);}
3) position-y. Dajesz dla ul position:relative;. Teraz możesz rozmieścić przyciski względem ul. Czyli dla li: position absolute. Dla pierwszego li:left:0; dla drugiego left:szeokość_pierwszego_elementu+margin, dla drugiego:left: szerokość_pierwszego+szerokość_drugiego+2*margin; itp.itd;
Jeżeli chodzi o grafikę to zależy co masz na myśli. Czy masz gotowy przycisk, czyli obrazek, który ma szerokość i wysokość, czy masz pattern, którym chcesz wypełnić button.
W pierwszym przypadku nie da się zastosować pierwszego sposobu. Zostają jedynie sposoby 2 i 3, bo tylko tam możesz dać dla elementu <a> display:block;.
Natomiast jeżeli masz pattern, który ciągniesz w osi x (można by ciągnąć (że tak powiem) w osi y, ale to raczej nie ma sensu, bo to szerokość gra tutaj pierwsze skrzypce) sprawa wygląda raczej prosto.
Dajesz po prostu dla elementu <a> background CSS.
Kod
a{background #xxx urrl('sciecha/pliczek.graf') repeat-x 0 50%);
Dość ważne jest 50%. Jeżeli masz pattern dla buttona, to masz też żywy tekst jako menu ( nie grafikę). Jeżeli tak to można go powiększać. Chodzi o to, żeby wraz z powiększaniem tekstu menu zachowało 'dobrą formę'. 50% sprawi, że Twój pattern będzie zawsze wyświetlany 'w połowie buttona'. Oczywiście pattern musi być 'wyższy' niż wysokość defaultowa buttona, żeby wraz z powiększaniem tekstu odsłaniała się jego coraz większa część (patternu

). To ma sens wtedy gdy, parttern jest symetryczny w połowie. Jeżeli tak nie jest, 50% nie ma sensu.Wtedy dajemy 0% i o ile z powiększaniem tekstu pattern może się 'skończyć', czyli odsłonić całkowicie- musimy go uzupełnić kolorem, aby zatrzeć urwanie grafiki. Po to to #xxx w kodzie, ale nie tylko, przyda się gdy user nie wyświetla obrazków.
Patterny są dużo lepsze moim zdaniem. Pozwalają łączyć elastyczność menu tekstowego i urodę menu graficznego. Sam musisz pokombinować. Podstawa to zdawać sobie sprawę z blokowości i liniowości w sensie HTML i CSS ( bo to nie to samo). Bez tego się nie da

pzdr;