Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][CSS]Menu
Forum PHP.pl > Forum > Przedszkole
Strarus
cześć
mam problem z wyświetlaniem generowanego menu. otóż na stronie zamiast pełnych grafik wyświetla się tylko coś takiego:


style są w porządku, więc o co chodzi?

ps. na localu wszystko jest ok, więc nie wiem o co chodzi?
tomsi
Temat: Najczestsze_bledy

Może punkt 10 rozwiąże Twój problem smile.gif
Strarus
Niestety nie znalazłem tam pomocy, może kod będzie pomocny dla Was:
  1. <?php
  2. $url = basename($_SERVER['PHP_SELF']);
  3. $menu = array(
  4. 'index.php' => 'Home',
  5. 'artykuly.php' => 'Artykuły',
  6. 'uzytkownicy.php' => 'Użytkownicy'
  7. );
  8. foreach($menu as $key => $value) {
  9. if ($url == $key) {
  10.    print('<a class="menu_a" href="'.$key.'">'.$value.'</a>');
  11. } else {
  12.    print('<a class="menu" href="'.$key.'">'.$value.'</a>');
  13. }
  14. }
  15. ?>
Marr
a co ma piernik do wiatraka? smile.gif Pokaż jak to powinno wyglądac. Może jakis base href psoci?
Spawnm
pokaż style css , tam jest źle , i coś mi się zdaje że sprawdzałeś na 2 różnych przeglądarkach .
Strarus


czyli pełne wym,iary zdefiniowane w css

CSS:
Kod
a.menu:link {
    background-image: url(menu.png);
    margin-right: 5px;
    width: 120px;
    height: 40px;
    text-align: center;
    padding-top: 6px;
    font-family: Microsoft Sans Serif;
    color: white;
    text-decoration: none;
}
a.menu:hover {
    background-image: url(menu.png);
    margin-right: 5px;
    background-position: 100% -40px;
    width: 120px;
    height: 40px;
    text-align: center;
    padding-top: 6px;
    font-family: Microsoft Sans Serif;
    color: white;
    text-decoration: none;
}
a.menu_a:link {
    background-image: url(menu_active.png);
    margin-right: 0px;
    width: 120px;
    height: 40px;
    text-align: center;
    padding-top: 6px;
    font-family: Microsoft Sans Serif;
    color: white;
    text-decoration: none;
}
a.menu_a:hover {
    background-image: url(menu_active.png);
    margin-right: 0px;
    background-position: 100% -40px;
    width: 120px;
    height: 40px;
    text-align: center;
    padding-top: 6px;
    font-family: Microsoft Sans Serif;
    color: white;
    text-decoration: none;
}
Marr
obstawiam po prostu zle podlikowanie do css'a. Nie może być inaczej (a przynajmniej wg mnie). Użyj sobie bezwzględnej ścieżki (zaczynając od http:// i tak dalej)do css'a i zobacz czy działa smile.gif
Strarus
a zobacz CSS moje, myśle, że jest ok?
Spawnm
margin-right: 5px;
i masz powód odstępu smile.gif
Strarus
ale mi nie chodzi o odstęp, tylko o to, że obrazki są dopasowane do napisu :/
Spawnm
zobacz ścieżki do obrazków , są w tym samym katalogu co plik który się wykonuje?
bo tak wynika z css.
Strarus
tak

edit: ktoś jeszcze wcześniej pytał o przeglądarki, tak ff i ie
decha-design
obiekt inline nie może mieć nadanej stałej szerokości ... zrób to na divach z float'em i będzie działać ... tylko wtedy standardy szlag trafi no ale cóż =))
Strarus
nie rozumiem co mam zrobić na divach i jak haha.gif

w ogóle te linki mają grafike tylko na wysokość i szerokość dopasowaną, a powinny być 120x40 smile.gif
erix
Chodzi o warstwę. Nadaj jej opływanie (float).
Strarus
dodałem float: right i działało, ale wszystko było po prawej stronie (ma być na środku) a jak daję center (chyba w ogóle nie można) to jest tak jak było...
Spawnm
no to daj float: right i wszystko w boxa z margin:0 auto smile.gif
Strarus
dobra już mam coś smile.gif jeszcze troszkę i będzie ok smile.gif dzięki

teraz jak już mam wszystko wyśrodkowane to mi nie wiem dlaczego obrazki wystają w dół:


background-repeat: no-repeat; nie pomaga sad.gif tylko w hover (dziwne)
Spawnm
pokaż kawałek kodu
Strarus
Kod
a.menu:link {
    background-image: url(menu.png);
    background-repeat: no-repeat;
    width: 120px;
    height: 40px;
    padding-top: 6px;
    float: right;
    text-align: center;
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    font-family: Microsoft Sans Serif;
    display: inline;
}
a.menu:hover {
    background-image: url(menu.png);
    background-repeat: no-repeat;
    background-position: 100% -40px;
    width: 120px;
    height: 40px;
    padding-top: 6px;
    float: right;
    text-align: center;
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    font-family: Microsoft Sans Serif;
    display: inline;
}

ścieżki się zgadzają, html to
<a class="menu" href="#">Home</a>
Spawnm
hmh pokaż nie tylko linki ale też box w którym się znajdują ...
Strarus
Kod
div#menu {
    width: 100%;
    height: 40px;
    margin: 0px auto;
    background-image: url(back_manu.png);
    background-repeat: repeat-x;
}
div#me {
    width: 360px;
    text-align: center;
}

html
Kod
<div id="menu"><div id="me">
<a class="menu" href="#">Home</a>
<a class="menu" href="#">Home</a>
<a class="menu" href="#">Home</a>
</div></div>
Spawnm
ten sam height , ale linkom dałeś padding-top: 6px;, wywal smile.gif
Strarus
dzięki smile.gif nie wiedziałem, że padding może 'zwiększyć' zasięg elementu smile.gif teraz tylko vertical-align:middle ;d

ale coś mi ten vertical-align: middle; nie działa haha.gif
Spawnm
@ teraz tylko vertical-align:middle
a do czego to dajesz? (którego diva)
ewentualnie pobaw się w różnych przeglądarkach albo z tym paddingiem ale dla div menu albo z margin-top dla a
Strarus
ok smile.gif vertical-align: middle; dawałem dla a.link i innych smile.gif
Spawnm
daj dla boxa to w nim coś ma być pozycjonowane .

poczytaj sobie jakiś kurs o html i css smile.gif
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.