Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [css][xhtml] Poziome menu z hoverem
jaczula
post 10.02.2008, 13:21:32
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.01.2008

Ostrzeżenie: (0%)
-----


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.


--------------------
Apache 2.2 | PHP 5.2.5 | MySQL 5.1 | Eclipse


Go to the top of the page
+Quote Post
nowotny
post 10.02.2008, 13:28:11
Post #2





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

Ostrzeżenie: (0%)
-----


Ustaw sobie własności margin lub padding w odpowiednich elementach...
Go to the top of the page
+Quote Post
jaczula
post 10.02.2008, 17:05:52
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.01.2008

Ostrzeżenie: (0%)
-----


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


--------------------
Apache 2.2 | PHP 5.2.5 | MySQL 5.1 | Eclipse


Go to the top of the page
+Quote Post
Toadstyle
post 13.02.2008, 01:54:30
Post #4





Grupa: Zarejestrowani
Postów: 54
Pomógł: 4
Dołączył: 26.01.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Abstrakcja: p
Display:inline;

pozatym mozesz zrobic diva o wymiarach jakie ma miec cale menu i ustawic float:left dla kazdego przycisku.
pozdrawiam
Go to the top of the page
+Quote Post
jaczula
post 19.02.2008, 15:57:18
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.01.2008

Ostrzeżenie: (0%)
-----


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.


--------------------
Apache 2.2 | PHP 5.2.5 | MySQL 5.1 | Eclipse


Go to the top of the page
+Quote Post
Toadstyle
post 20.02.2008, 00:17:30
Post #6





Grupa: Zarejestrowani
Postów: 54
Pomógł: 4
Dołączył: 26.01.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
jaczula
post 20.02.2008, 16:11:54
Post #7





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.01.2008

Ostrzeżenie: (0%)
-----


top i padding-top nic nie robią, a margin-top przesuwa całość w dół


--------------------
Apache 2.2 | PHP 5.2.5 | MySQL 5.1 | Eclipse


Go to the top of the page
+Quote Post
Toadstyle
post 20.02.2008, 19:45:06
Post #8





Grupa: Zarejestrowani
Postów: 54
Pomógł: 4
Dołączył: 26.01.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


ah niedoczytalem - rozszerzasz rozmiar linku na caly prostokat stad brak reakcji.
Musisz dodac dodatkowy obiekt ktory pozwoli ci przesowac napisy (div,p , span)
pozdrawiam

Ten post edytował Toadstyle 20.02.2008, 19:46:16
Go to the top of the page
+Quote Post
artur81
post 20.02.2008, 20:56:04
Post #9





Grupa: Zarejestrowani
Postów: 252
Pomógł: 2
Dołączył: 4.12.2004
Skąd: Skierniewice

Ostrzeżenie: (10%)
X----


  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

Ten post edytował artur81 20.02.2008, 20:56:24


--------------------
Go to the top of the page
+Quote Post
jaczula
post 21.02.2008, 18:35:49
Post #10





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.01.2008

Ostrzeżenie: (0%)
-----


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.


--------------------
Apache 2.2 | PHP 5.2.5 | MySQL 5.1 | Eclipse


Go to the top of the page
+Quote Post
Toadstyle
post 22.02.2008, 08:16:20
Post #11





Grupa: Zarejestrowani
Postów: 54
Pomógł: 4
Dołączył: 26.01.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
jaczula
post 22.02.2008, 18:36:14
Post #12





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.01.2008

Ostrzeżenie: (0%)
-----


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?


--------------------
Apache 2.2 | PHP 5.2.5 | MySQL 5.1 | Eclipse


Go to the top of the page
+Quote Post
Toadstyle
post 23.02.2008, 15:36:02
Post #13





Grupa: Zarejestrowani
Postów: 54
Pomógł: 4
Dołączył: 26.01.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


#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.
Go to the top of the page
+Quote Post
jaczula
post 23.02.2008, 16:05:34
Post #14





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.01.2008

Ostrzeżenie: (0%)
-----


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.


--------------------
Apache 2.2 | PHP 5.2.5 | MySQL 5.1 | Eclipse


Go to the top of the page
+Quote Post
Toadstyle
post 23.02.2008, 17:51:32
Post #15





Grupa: Zarejestrowani
Postów: 54
Pomógł: 4
Dołączył: 26.01.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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

Ten post edytował Toadstyle 23.02.2008, 17:13:07
Go to the top of the page
+Quote Post
jaczula
post 23.02.2008, 18:18:06
Post #16





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.01.2008

Ostrzeżenie: (0%)
-----


Dzięki bardzo, poradziłem sobie. Jeszcze raz dziękuję za pomoc, pozdrawiam.


--------------------
Apache 2.2 | PHP 5.2.5 | MySQL 5.1 | Eclipse


Go to the top of the page
+Quote Post
smialy
post 23.02.2008, 18:33:50
Post #17





Grupa: Zarejestrowani
Postów: 60
Pomógł: 4
Dołączył: 23.05.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


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


--------------------
openSuse, Eclipse i Aptana - daje rade
Go to the top of the page
+Quote Post
Toadstyle
post 23.02.2008, 19:13:26
Post #18





Grupa: Zarejestrowani
Postów: 54
Pomógł: 4
Dołączył: 26.01.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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 : >
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.07.2025 - 06:41