![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 4 Dołączył: 1.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Było niedawno, zobacz tu.
|
|
|
![]()
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 |
|
|
![]()
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ą. |
|
|
![]()
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>.
|
|
|
![]()
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.
|
|
|
![]()
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)
|
|
|
![]()
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?
|
|
|
![]()
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.
|
|
|
![]()
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ę?
|
|
|
![]()
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.
|
|
|
![]()
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) |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 36 Dołączył: 31.03.2006 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
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. 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 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 |
|
|
![]()
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ę.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 08:52 |