Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [css][xhtml] Poziome menu z hoverem
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
jaczula
Witam,

Mam problem. Mianowicie chciałbym uzyskać menu w poziomie.
Przykłady

W przykładzie 1 wszystko wyświetla sie fajnie, tylko jest w pionie.

Gdy w przykładzie 2 próbuję zrobić to w poziomie wychodzi sklejone i o innych wymiarach.

Proszę o pomoc.

Kod PHP:
  1. <?php
  2. echo '<center><div id="menu">';
  3. $result = mysql_query ('SELECT * FROM '.PREFIX.'menu ORDER BY menu_order');
  4. while($data = mysql_fetch_assoc ($result)){
  5. echo '<a href="'.$data['menu_link'].'">tekst</a>';
  6. }
  7. echo '</div>';
  8. ?>


CSS jest w przykładach.
nowotny
Ustaw sobie własności margin lub padding w odpowiednich elementach...
jaczula
ustawiłem padding i wstawiłem inny tekst(Przykład 3) i zrobiło się jeszcze coś innego, a poza tym jestem zależny od szerokości tekstu, a zależy mi na takiej samej wysokości i szerokości w przypadku każdego przycisku
Toadstyle
Abstrakcja: p
Display:inline;

pozatym mozesz zrobic diva o wymiarach jakie ma miec cale menu i ustawic float:left dla kazdego przycisku.
pozdrawiam
jaczula
Zrobiłem(przykład 4), wszystko ładnie, tylko jak manipulować tekstem w pionie, np. ustawić na środku. Vertical-align nie działa, a padding wszystko psuje.
Toadstyle
Cytat(jaczula @ 19.02.2008, 15:57:18 ) *
Zrobiłem(przykład 4), wszystko ładnie, tylko jak manipulować tekstem w pionie, np. ustawić na środku. Vertical-align nie działa, a padding wszystko psuje.


To dziwne bo powinien pomoc.
#menu a {margin-top:10;}
#menu a {top:10;}
#menu a {padding-top:10;}

Zadne nie działa ?

ostatecznie umieszczasz wszystkie linki w divie , ustalasz klase i dla tej klasy odleglosc
jaczula
top i padding-top nic nie robią, a margin-top przesuwa całość w dół
Toadstyle
ah niedoczytalem - rozszerzasz rozmiar linku na caly prostokat stad brak reakcji.
Musisz dodac dodatkowy obiekt ktory pozwoli ci przesowac napisy (div,p , span)
pozdrawiam
artur81
  1. <ul id = "menu">
  2. <li><a href="#">jakiś link</a></li>
  3. <li><a href="#">jakiś link</a></li>
  4. <li><a href="#">jakiś link</a></li>
  5. </ul>
  6.  
  7. <style type="text/css">
  8. #menu li {
  9. float:left;
  10. }


jak chcesz odstępy pomiędzy linkami to dla <li> daj margin
jaczula
wstawiłem span i mogę już kontrolować tekst, ale dalej top nic nie robi, margin-top przesuwa wszystko w dół, a padding-top wydłuża (w dół) przycisk.
Toadstyle
pogubilem sie jaki efekt chcesz uzyskac...
mialo byc menu w poziomie - jest
miales ustawiac polozenie tekstu - ustawiasz
wiec niebardzo da sie odpowiedziec na niezadane pytanie:D

a co do komend dzialaj prawidlowo. : p
jaczula
Nieporozumienie.
Miałem kontrolować tekst - nie kontroluję.
Wprawdzie, dzięki zastosowaniu span mogę robić dużo rzeczy, ale pozycja tekstu w pionie nadal pozostaje poza moją kontrolą. Porusza sie cały przycisk (margin-top), nic się nie dzieje (top), przycisk rozszerza się w dół o wybraną liczbę pikseli (padding-top). Tak więc choć tekst kontroluję, to nie potrafię dalej ustawić potrzebnej mi cechy - wyrównania tekstu w pionie.
Przepraszam za niejednoznaczne wyrażanie się.

P.S. O co chodzi z komendami?
Toadstyle
#menu a
{
text-decoration: none;
height: 40px;
width: 120px;
outline-style: none;
float: left;
display: inline;
}

to jest twoj problem

kazdy twoj odnosnik posiada rozmiar 40*120 wiec zajmoje cala "kratke"
dlatego
top:opisuje odstep pomiedzy zew krawedzia elementu pozycjonowanego a gorna krawedzia bloku pojemnika

u ciebie obie te wartosci beda takie same (pole oraz a) wiec dowolna odleglosc nic niezmieni

margin-top: ustawia margines od gory a
padding-top dopelnienie poniewaz dopenienie czesto jest "elementem"
(nie w kazdym przypadku" przycisk sie rozszerza).

Tyle odnosnie komend w koncu zrozumienei przede wszystkim biggrin.gif.

teraz jak rozwiazac problem :
Twoje tlo odnosi sie do linkow.To trzeba bedzie zmienic naprzyklad :

<div id=glowny>

<div class=przycisk>
<a> asdasd </a>
</div > //przycisk

</div> //glowny

i teraz tlo ustawiasz dla #przycisk (wymiary rowniez)
na tym etapie efekt powinien wygladac tak jak przyklad 4 w chwili obecnej

a napisy pozycjonujesz
#glowny a{top:20px;}


z uwag ogolnych padding:0 0 0; = padding:0;

taki uklad pozwoli ci uniknac rowniez powtornego ladowania tla przy :hover
pozdrawiam.
jaczula
Jeśli tak zrobię to już to nie będzie przycisk, tylko hiperłącze na obrazku. Łączem będzie tylko tekst, a nie cały obrazek.
Toadstyle
Cytat(jaczula @ 23.02.2008, 16:05:34 ) *
Jeśli tak zrobię to już to nie będzie przycisk, tylko hiperłącze na obrazku. Łączem będzie tylko tekst, a nie cały obrazek.


mozesz dac
<a><div przycisk><span>tekst</span></div></a>

tylko to chyba nie jest zbyt zgodne ze standardami nie jestem pewny.


2gi sposob:
position:absolute;
najpierw ustawiasz napisy pozniej wymiary uzywajac padding w kazda strone (
x px z lewej + szerokosc napisu + x px z prawej - wys analogicznie.)

3ci sposob mozesz probowac z display:block;

4 mozesz stworzyc <a><span><p>tekst</p></span></a>

ustawiasz wymiary dla span a nie dla a a pozycjonujesz przy uzyciu p

pozdrawiam

http://www.toadstyle.yoyo.pl/1728.htm

powinienes juz sobie poradzic
biggrin.gif
jaczula
Dzięki bardzo, poradziłem sobie. Jeszcze raz dziękuję za pomoc, pozdrawiam.
smialy
Cytat(Toadstyle @ 23.02.2008, 17:51:32 ) *
mozesz dac
<a><div przycisk><span>tekst</span></div></a>
tylko to chyba nie jest zbyt zgodne ze standardami nie jestem pewny.

No chyba raczej winksmiley.jpg A jest chyba liniowym elementem a div raczej blokowym winksmiley.jpg
Toadstyle
Nie ma za co.

Cytat(smialy @ 23.02.2008, 18:33:50 ) *
No chyba raczej winksmiley.jpg A jest chyba liniowym elementem a div raczej blokowym winksmiley.jpg

Przeciez pisze : >
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.