phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

FAQFAQ - PIERWSZA POMOC!!  regulaminREGULAMIN  SzukajSZUKAJ  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload  katalog Forów DyskusyjnychKatalog Forów   FAQ Video tutoriale

Poprzedni temat «» Następny temat
Przesunięty przez: joli
22-11-2008, 22:22
MENU Nawigacja <div>
Autor Wiadomość
Phantom


Pomógł: 23 razy
Posty: 161
Wysłany: 22-11-2008, 13:55   MENU Nawigacja <div>

Witam,

Chciałbym się dowiedzieć jak zrobić nawigację obrazkową za pomocą funkcji <div="">,
której nigdy w życiu nie stosowałem ;]
Wyjaśnię dokładnie o co chodzi...
Powiedzmy, że mamy obrazek nr1 a gdy najedziemy na niego pokaże nam się obrazek nr2
Chciałbym wiedzieć co trzeba wpisać do pliku css i jak to wszystko użyć/zakodować w pliku overall_header.tpl

Próbowałem coś tam zrobić ale nie wychodzi..
w pliku css wpisałem
Kod:
#faq1 {
    background: url("templates/subSliver/images/nav/faq.png") no-repeat;
}
#faq1:hover {
    background: url("templates/subSliver/images/nav/faq2.png") no-repeat;
}

a w overall_header.tpl:
Kod:
<table width="100%" height="37" cellpadding="0" cellspacing="0" border="0" style="background-image: url('templates/subSliver/images/tlo_nawigacji.png'); background-position: center; background-repeat: repeat-x">
<tr><td>
<a href="{U_FAQ}" id="faq1"></a><td></tr>

i żaden obrazek się nie pokazał :/
Mógłby mi ktoś wyjaśnić jak to zrobić ;] ?
 
     
Gadatliwa Kasia 

   
Tavaro

Pomógł: 242 razy
Posty: 1135
Wysłany: 22-11-2008, 16:04   

Cytat:
w pliku css wpisałem

Po co się męczyć z deklaracją zewnętrzną dla dwóch linijek?

Kod:
< ... style="background-image: url(adres_obrazka_przed_najechaniem); background-repeat: no-repeat; (reszta stylu)" onmouseover="this.style.background='url(adres_obrazka_po_najechaniu)';" onmouseout="this.style.background='url(adres_obrazka_po_zdjęciu_kursora_z_elementu)';" onclick="location.href='docelowy_url_dla_linka';" ... >

Div to nie funkcja, to tag. ;)

Przykład:
Cytat:
<div style="background-image: url(images/nohover.gif); background-repeat: no-repeat;" onmouseover="this.style.background='url(images/hover.gif)';" onmouseout="this.style.background='url(images/nohover.gif)';" onclick="location.href='faq.php';">


Ściągawkę masz też na moim www ;)
Ostatnio zmieniony przez Tavaro 22-11-2008, 16:11, w całości zmieniany 1 raz  
 
     
Phantom


Pomógł: 23 razy
Posty: 161
Wysłany: 22-11-2008, 16:11   

Zdaje mi się, że przy użyciu takiej metody jaką podałeś obrazki zmieniają się z dużym opóźnieniem, chociaż jej nie stosowałem ... jest bardzo podobna do tej, która mam aktualnie w nawigacji:
Kod:
<img src="templates/subSilver/images/nav/home.png" onmouseover="src='templates/subSilver/images/nav/home2.png'" onmouseout="src='templates/subSilver/images/nav/home.png'" border="0" width="58" height="37" style="vertical-align: bottom;">

Więc chciałbym się także dowiedzieć czy te obrazki rzeczywiście ładują się z opóźnieniem przy kodzie jakiego używam, być może z twoim sposobem będzie inaczej, sprawdzimy :)
aha, o co chodzi z tym ;P
 
     
Tavaro

Pomógł: 242 razy
Posty: 1135
Wysłany: 22-11-2008, 16:13   

Phantom napisał/a:
Więc chciałbym się także dowiedzieć czy te obrazki rzeczywiście ładują się z opóźnieniem przy kodzie jakiego używam

Tak, to wynika z faktu, że nie są wczytywane podczas ładowania strony, a dopiero po najechaniu. Możesz je wczytywać javascriptem, a możesz i tak:
Kod:
<img src="images/hover.gif" width="0" height="0" style="width: 0px; height:0px;" alt="">
W sumie jest jeszcze parę sposobów, np. visibility: hidden. ;)
 
     
Phantom


Pomógł: 23 razy
Posty: 161
Wysłany: 22-11-2008, 16:22   

Tavaro, umieściłem jeden obrazek z twoim sposobem jaki mi podałeś, i jest mały problem :P
Obrazek jest wyświetlany po całej ciągłości nawigacji, po prostu się powtarza
próbowałem zrobić tak
Kod:
onmouseout="this.style.background='url(templates/subSilver/images/nav/home.png)';"

zamieniałem na:
Kod:
onmouseout="this.style.background='url(templates/subSilver/images/nav/home.png)'; background-repeat: no-repeat;"

ale wtedy obrazek się nie wyświetla :P
Jakaś rada :) ?
 
     
Tavaro

Pomógł: 242 razy
Posty: 1135
Wysłany: 22-11-2008, 16:35   

Spróbuj tak:
Kod:
<!-- wczytanie obrazków dla hover -->
<img src="templates/subSilver/images/nav/home2.png" width="0" height="0" style="width: 0px; height:0px;" alt="">

<!-- div najeżdżalny -->
<div style="background-image: url(templates/subSilver/images/nav/home.png)" background-repeat: no-repeat; width: 50px; height: 37px;" onmouseover="this.style.background='url(templates/subSilver/images/nav/home2.png)';" onmouseout="this.style.background='url(templates/subSilver/images/nav/home.png)';" onclick="location.href='http://blablabla.pl';"></div>

No i wypozycjonuj div-a za pomocą
Kod:
position: ...

W praktyce: klik -> źródło.
Ostatnio zmieniony przez Tavaro 22-11-2008, 17:07, w całości zmieniany 1 raz  
 
     
Phantom


Pomógł: 23 razy
Posty: 161
Wysłany: 22-11-2008, 16:42   

Właśnie chodzi o to, że brakuje tam kodu, który uniemożliwi obrazkowi powtarzanie się po całej tabeli :)
Nie mam pojęcia jaki to jest kod (te co próbowałem nie działają) i gdzie go umieścić :)
 
     
Tavaro

Pomógł: 242 razy
Posty: 1135
Wysłany: 22-11-2008, 16:47   

Może inaczej: pokaż mi ten kod. :lol:
 
     
Phantom


Pomógł: 23 razy
Posty: 161
Wysłany: 22-11-2008, 16:52   

Ok, z tym już sobie poradziłem dodałem
Kod:
position: relative; width: 58px; height: 37px;

i pomogło :)
Ostatnio zmieniony przez Phantom 22-11-2008, 17:12, w całości zmieniany 2 razy  
 
     
Tavaro

Pomógł: 242 razy
Posty: 1135
Wysłany: 22-11-2008, 17:11   

Cytat:
<img src="templates/subSilver/images/nav/home2.png" width="0" height="0" style="width: 0px; height:0px;" alt="">
<img [img2] >
<img [img3] >
...i tak dalej


<table width="100%" height="37" cellpadding="0" cellspacing="0" border="0" style="background-image: url(templates/subSilver/images/tlo_nawigacji.png); background-position: center; background-repeat: repeat-x">
<tr>
<td width="100%" height="29" align="left" valign="center" style="background-image: url('templates/subSilver/images/p_c.png');">
<div style="margin: 0; background-image: url(templates/subSilver/images/nav/home.png)" background-repeat: no-repeat; width: 50px; height: 37px; position: ... ;" onmouseover="this.style.background='url(templates/subSilver/images/nav/home2.png)';" onmouseout="this.style.background='url(templates/subSilver/images/nav/home.png)';" onclick="location.href='http://faq.php';"></div>
<div dla img2... ></div>
<div dla img3... ></div>
...i tak dalej.

</td>
</tr>
</table>


"Ogranicznikiem" są rozmiary div-a (kolor czerwony), jedyne, co trzeba ustawić (metodą prób i błędów - najlepiej najpierw zakodować wszystkie div-y w html-u, a dopiero potem ustawiać przez position: relative), to położenie tych div-ów (kolor niebieski). Oczywiście rozmiary div-a muszą równać się rozmiarowi obrazków.

Chociaż, będąc na Twoim miejscu, nie babrałbym się w tym przypadku z tabelami i zrobił to wszystko na div-ach.

Edit:

Cytat:
Ok, z tym już sobie poradziłem dodałem

No przecież podawałem wcześniej w kodzie... ;)
 
     
Phantom


Pomógł: 23 razy
Posty: 161
Wysłany: 22-11-2008, 17:17   

Teraz jest inny problem bo obrazki nie są w lini tylko pod sobą się układają :/
Jak zrobić, żeby były w jednej lini :) ?
Kod:
<table width="100%" height="37" cellpadding="0" cellspacing="0" border="0" style="background-image: url('templates/subSilver/images/tlo_nawigacji.png'); background-position: center; background-repeat: repeat-x">
<tr>
<td width="100%" height="29" align="left" valign="center" background="templates/subSilver/images/p_c.png">
<div style="position: relative; width: 58px; height: 37px; background-image: url(templates/subSilver/images/nav/home.png); background-repeat: no-repeat;" onmouseover="this.style.background='url(templatessubSilver/images/nav/home2.png)';" onmouseout="this.style.background='url(templates/subSilver/images/nav/home.png)';" onclick="location.href='faq.php';">&nbsp;</div>
<img src="templates/subSilver/images/nav/sep.png" border="0" height="37" style="vertical-align: bottom;">
<div style="position: relative; width: 58px; height: 37px; background-image: url(templates/subSilver/images/nav/home.png); background-repeat: no-repeat;" onmouseover="this.style.background='url(templates/subSilver/images/nav/home2.png)';" onmouseout="this.style.background='url(templates/subSilver/images/nav/home.png)';" onclick="location.href='faq.php';">&nbsp;</div>
</td>
</tr>
                </table>
 
     
Tavaro

Pomógł: 242 razy
Posty: 1135
Wysłany: 22-11-2008, 17:35   

Cytat:
Jak zrobić, żeby były w jednej lini :) ?

Zamiast separatora w postaci obrazka (<img>) użyj div-a z tłem sep.png (pamiętaj o wymiarach), następnie wszystkim div-om wewnątrz <tr> (dotyczy także tych z tłem sep.png) dodaj do stylu
Kod:
display: table-cell;

albo
Kod:
display: inline;
 
     
Phantom


Pomógł: 23 razy
Posty: 161
Wysłany: 22-11-2008, 17:46   

Tavaro, szacunek dla Ciebie za twoją pomoc :)

Wszystko śmiga, lata jak należy :)

Pozdrawiam

Edit:
Ostatnie pytanie :)
Gdy dodam kod
Kod:
display: table-cell;

wszystko jest pięknie ładnie pod przeglądarką mozilla i opera.
Pod przeglądarką IE wszystko się rozjeżdża :P
lecz gdy zamienie
Kod:
display: table-cell;

na
Kod:
display: inline;

pod przeglądrką IE jest wszystko ok ale inne przeglądarki nie wyświetlają obrazków :/

Jakaś rada na rozwiązanie tego typu problemu :P ?
 
     
nike_00


Pomógł: 31 razy
Posty: 229
Wysłany: 24-11-2008, 23:27   

Tavaro napisał/a:
Jakaś rada na rozwiązanie tego typu problemu :P ?

Oczywiście :>
Kod:
<!--[if IE]>
<link href="ie_fix.css" rel="stylesheet" type="text/css" />
<![endif]-->

Gdzie:
ie_fix.css jest to ścieżka do pliku .css w którym dodasz te swoje display: inline; oczywiście z całym tagiem :P
 
     
Gadatliwa Kasia 

   
Radek



Pomógł: 955 razy
Posty: 4614
Wysłany: 26-11-2008, 15:12   

Phantom,
http://www.grabun.com/tek...y/css-rollover/
Poczytaj o Rollover w CSS i nie będzie trzeba korzystać z onmouseover i onmouseout, podświetlony i normalny przycisk jest w jednym obrazku, nie ma opóźnień między podświetlaniem.
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!

Powered by phpBB modified by Przemo © 2003 phpBB
Strona wygenerowana w 0,16 sekundy. Zapytań do SQL: 12
Polecane serwisy

Najlepsze oprogramowanie do prowadzenia sklepu internetowegoNajlepszy program do sklepu firmowany przez Przem'a

Sklep z gadżetami

serwis laptopów

phpbb

Polisy Ubezpieczeniowe TU Europa

Design Cart - Tworzenie sklepu internetowego

dnirozwoju.pl

Ranking Hostingów HostingOnline.pl

• Zamów reklamę