Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [html][js] div jako link
KCG
post
Post #1





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


Chciałbym, aby div był linkiem. Ustawiłem sobie w css'ie cursor: pointer i myślałem, że onclick w divie załatwi sprawę, jednak nie.
Próbowałem tak: <div onclick="direct('adres.php');"> tresc </div> (direct() to na pewno dobra funkcja, bo w innych przypadkach działa).
Jak zrobić, aby cały div był linkiem?

pzdr
Go to the top of the page
+Quote Post
Moli
post
Post #2





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

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


Pokaż kod funkcji direct.

ps. kod umieszczaj w bbcode.
Go to the top of the page
+Quote Post
KCG
post
Post #3





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


  1. function direct(adres) {
  2. window.location = adres;
  3. }
Go to the top of the page
+Quote Post
webdice
post
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Było niedawno, zobacz tu.
Go to the top of the page
+Quote Post
KCG
post
Post #5





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


Dzięki za link (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Jednak mam div, w którym są jeszcze 3 divy. Dałem odpowiednie style i odnośnik za otwierającym znacznikiem głównego div, ale linkiem stał się tylko pierwszy 'poddiv'. Tak to wygląda, chodzi o ramkę z encyklopedią po lewej stronie: http://pytak.no-ip.org/~trudny/new_moto/
Chciałbym jeszcze, aby w divie tekst nie był zamieniany na linki, tzn. pozostał dla przykładu biały, można coś takiego robić, czy css dla każdego?

Doszedłem do wniosku, że w mojej funkcji zamiast window.location powinno być window.location.href, mam rację? Tylko czemu w niektórych przypadkach przekierowanie działało bez '.href'?
I chyba jednak zrobię na onclick, bo to najbardziej mi pasuje, dokładnie cały div jest linkiem, niewykluczając paddingów...

Ten post edytował KCG 9.05.2008, 12:21:30
Go to the top of the page
+Quote Post
batman
post
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




A nie możesz zamienić głównego div-a na znacznik a?
Nadasz mu styl dusplay: block i po sprawie. Będzie cały klikalny wraz z zawartością.
Go to the top of the page
+Quote Post
KCG
post
Post #7





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


Nie wiem czemu, ale jak tak zrobiłem to obramowanie zniknęło. Z tym, że wewnątrz zostawiłem divy, może tak być? Bo logicznie wtedy <a> zachowuje się, jak <div>.
Go to the top of the page
+Quote Post
batman
post
Post #8





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Jak zamienisz głównego diva na a, to musisz jeszcze skopiować wszystkie style, które były przypisane do tego diva.
Go to the top of the page
+Quote Post
.radex
post
Post #9





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Nie polecam... Takie rozwiązania (do tego JS) są strasznie niesemantyczne. Będziesz miał problemy z robotami googlów itd, bo one nie wiedzą co to jest JS. Po prostu dajesz display:block; i po sprawie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
KCG
post
Post #10





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


Dawałem tą klasę, co dla div'a, w sumie mogę pomyśleć. Ale mam jeszcze pytanko, co do tego sposobu onclick: i tak w każdym divie jest normalny link, więc będzie to takie szkodliwe?
Go to the top of the page
+Quote Post
batman
post
Post #11





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Jeśli dasz onclick oraz zwykły link, to różne przeglądarki będą się różnie zachowywać. W jednej wykona się on click, w innej zadziała link. Poza tym używanie onclick w sytuacji, gdy w zupełności wystarczy link, spowoduje, że roboty indeksujące nie będą w stanie śledzić łączy na Twojej stronie.
Go to the top of the page
+Quote Post
KCG
post
Post #12





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


Tak, ale cały div jest linkiem, dzieki onclick, a jeśli to nie zadziała to jest w środku zwykły link tekstowy. Logicznie rzecz ujmując, to roboty indeksujące pominą onclick i trafią na zwykły link, dobrze myślę?
Go to the top of the page
+Quote Post
batman
post
Post #13





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Dobrze myślisz, ale jest to dla Ciebie podwójna robota. Przecież napisałem wyżej, jak ze znacznika a zrobić element blokowy. Będzie działać na 100%. A jeśli nie chcesz się bawić z linkiem, to możesz otoczyć całego diva znacznikiem a. Uzyskany efekt będzie taki sam.
Go to the top of the page
+Quote Post
KCG
post
Post #14





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


Nie do końca podwójna, bo mi właśnie bardziej odpowiada efekt, ale to już każdy ma własną skalę.
W każdym razie wielkie dzięki za wyczerpującą odpowiedź (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
woj_tas
post
Post #15





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

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


Cytat(batman @ 10.05.2008, 08:41:51 ) *
Jeśli dasz onclick oraz zwykły link, to różne przeglądarki będą się różnie zachowywać. W jednej wykona się on click, w innej zadziała link. Poza tym używanie onclick w sytuacji,

No nie za bardzo, bo dlaczego różne preglądarki miałyby różnie odczytywać? Robisz w onclicku return false i href sie nie wykona.
Cytat(batman @ 10.05.2008, 08:41:51 ) *
gdy w zupełności wystarczy link, spowoduje, że roboty indeksujące nie będą w stanie śledzić łączy na Twojej stronie.

Będą bo będzie link

Cytat(batman @ 10.05.2008, 10:31:11 ) *
Dobrze myślisz, ale jest to dla Ciebie podwójna robota. Przecież napisałem wyżej, jak ze znacznika a zrobić element blokowy. Będzie działać na 100%. A jeśli nie chcesz się bawić z linkiem, to możesz otoczyć całego diva znacznikiem a. Uzyskany efekt będzie taki sam.


Twoje rozwiązanie jest ok, ale nie do końca. A jest elementem liniowym i nie mozna do niego wrzucać div-ów.

@KCG zrów tak: głównego div-a zamien na "a" i nadaj mu display:block. Pozostałe div-y zamien na "span" i także nadaj im display:block;
"Span" jest elementem liniowym więc może być w "a"

Ten post edytował woj_tas 10.05.2008, 14:09:35
Go to the top of the page
+Quote Post
batman
post
Post #16





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
No nie za bardzo, bo dlaczego różne preglądarki miałyby różnie odczytywać? Robisz w onclicku return false i href sie nie wykona.
Jeśli dasz return false w onclick dla div-a, to w żaden sposób to nie wpłynie na znacznik a. Return false zadziała tylko w przypadku, gdy onclick znajdzie się w a.

Cytat
Twoje rozwiązanie jest ok, ale nie do końca. A jest elementem liniowym i nie mozna do niego wrzucać div-ów.
Nigdzie nie jest napisane, że chodzi o doctype strict, więc nie ma potrzeby martwić się o to, że div znajduje się w a. Ale jeśli rzeczywiście ma się strona walidować dla strict, to masz rację.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 08:52