Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> DIV jako hiperłącze
8rol
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 10.10.2009

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


Witam.

Chcę zrobić tak, aby po kliknięciu w dowolne miejsce wewnątrz mojego diva użytkownik został przeniesiony na inną podstronę.
Początkowo zrobiłem to za pomocą zdarzenia onclick przypisanego do tego diva. Później jednak okazało się, że możliwe jest wstawienie całego tego diva jako nazwy hiperłącza. Pomyślałem, że będzie to lepsze rozwiązanie z względu na użytkowników z wyłączoną/blokowaną JS.

Jednak w takim wypadku strona nie waliduję się poprawnie w walidatorze. Problemem jest umieszczenie elementu blokowego (div) wewnątrz liniowego (a).

Tak więc w jaki najlepszy sposób zrobić "klikalnego" diva?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Może, nadaj
  1. a {
  2. display: block
  3. }


? ;>

Ten post edytował Damonsson 22.09.2010, 23:21:05
Go to the top of the page
+Quote Post
essey
post
Post #3





Grupa: Zarejestrowani
Postów: 118
Pomógł: 5
Dołączył: 9.07.2003
Skąd: Wołów/Wrocław

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


Definitywnie tak! Nie należy dawać div'ów między znaczniki <a></a>.
Najkorzystniejszym rozwiązaniem jest ustawienie wysokości, szerokości oraz wyświetlania jako blok dla linku.
Jest to bardzo wygodne, gdyż można nie tylko określić rozmiar linku, ale i ustawić podmianę tła po najechaniu (hover).
W wypadku divów i hover konieczne są kombinacje za pomocą js, aby obsługiwać to w starszych wersjach IE.

Jeżeli chcesz zrobić to za pomocą div'a z powodu np. zawartości w nim (np. nie tylko link, ale jakieś ramki itd.), polecam korzystanie ze znacznika <span></span>, któremu również możesz nadać parametr display:block i pozycjonować wewnątrz <a></a>, a dodatkowo jest zgodny ze standardami.
Go to the top of the page
+Quote Post
devnul
post
Post #4





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


Cytat
Definitywnie tak! Nie należy dawać div'ów między znaczniki <a></a>.
bzdura


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
essey
post
Post #5





Grupa: Zarejestrowani
Postów: 118
Pomógł: 5
Dołączył: 9.07.2003
Skąd: Wołów/Wrocław

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


devnul, mówię o html4. Zanim html5 zostanie spopularyzowany...
Wyskoczyłeś z tym .... smile.gif
Go to the top of the page
+Quote Post
krispak
post
Post #6





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


Wlasnie o to chodzi aby go popularyzowac i stosowac winksmiley.jpg
  1. div {
  2. width: 100px;
  3. height: 100px;
  4. }
  5. a {
  6. display: block;
  7. width: 100%;
  8. height: 100%;
  9. }

  1. <div><a href="">Link</a></div>

Jest i klikalny div..


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
Go to the top of the page
+Quote Post
devnul
post
Post #7





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


Cytat
devnul, mówię o html4. Zanim html5 zostanie spopularyzowany...
chwila a to się nie dzieje właśnie teraz? bo z takim podejściem to faktycznie trzeba by ze 20 lat poczekać. Korzystanie z html5 nie oznacza skreślania nawet starych przeglądarek (włączając IE6), skoro google sobie mogło pozwolić na wdrożenie w html5 to i my maluczcy możemy


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
everth
post
Post #8





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


@devnul - chcesz powiedzieć że eksperymentujesz na klientach? winksmiley.jpg


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
devnul
post
Post #9





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


Cytat
@devnul - chcesz powiedzieć że eksperymentujesz na klientach? smile.gif

dlaczego eksperymentuje? stosowanie czegoś co działa i oferuje większe możliwości uważasz za eksperyment? Poza tym narzędzie (w tym wypadku język/technologia) zawsze należy dobierać do potrzeb a nie odwrotnie. A decyzja o tym czy stosujemy taką czy inną technologię po przedstawieniu konkretnych za i przeciw jest podejmowana zawsze z klientem. W tym wypadku html5 to np dostępność multimediów na urządzeniach przenośnych Apple (czy to się komuś podoba czy nie stają się coraz popularniejsze) a minusem jest konieczność w celu zapewnienia pełnej kompatybilności wstecznej (w sensie przeglądarek) załączenie odpowiednich skryptów js

Ten post edytował devnul 23.09.2010, 14:34:37


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
everth
post
Post #10





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


@devnul - przecież tam był śmiech, mało mnie obchodzi jakich kosmicznych technologii używasz w codziennym życiu, jeśli tylko klienci są happy (im zresztą pewnie też to zwisa). Chodzi mi raczej o rzucanie na prawo i lewo HTML5.

Przecież ta nazwa to marketingowa zagrywka - w zasadzie poza kilkoma dodatkowymi tagami (których obsługa jeszcze kuleje ->video) praktycznie to wszystko było możliwe wcześniej ze starym poczciwym html4 uzbrojonym JSem (no i flashem, którego teraz się tępi w imię interesów jakiegoś innego konsorcjum). Jedyny zysk jaki widzę z promowania HTML5 to to, że ludzie wreszcie zaktualizowali przeglądarki. I tyle.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
devnul
post
Post #11





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


Cytat
@devnul - przecież tam był śmiech
i o czym to świadczy? o tym że sobie żartujesz czy o tym że z powodu własnej ignorancji śmiejesz się z tego że ktoś widzi racjonalne zastosowanie dla tej technologii?
Cytat
Przecież ta nazwa to marketingowa zagrywka
tak jeśli przez html5 rozumiesz także rozbudowanie js o nowe funkcjonalności oraz css3 to zgadzam się z Tobą - w takim kontekście to jest marketingowa zagrywka, jednak jest wycelowana w osoby nie mające technicznej wiedzy o tym temacie, mająca na celu uproszczenie całego zagadnienia do jednego pojęcia.
Cytat
w zasadzie poza kilkoma dodatkowymi tagami (których obsługa jeszcze kuleje ->video) praktycznie to wszystko było możliwe wcześniej ze starym poczciwym html4 uzbrojonym JSem (no i flashem, którego teraz się tępi w imię interesów jakiegoś innego konsorcjum). Jedyny zysk jaki widzę z promowania HTML5 to to, że ludzie wreszcie zaktualizowali przeglądarki. I tyle.
najwyraźniej pojęcia nie masz o różnicach między 5 a poprzednikami. przykładem jest choćby właśnie element poruszony w tym wątku
  1. <a href="#"><div>coś</div></a>
który jest poprawny z punktu widzenia standardu (w poprzednich wersjach html/xhtml nie był). I takich zmian jest mnóstwo. Jeżeli Tobie to zwisa to w jakim celu włączasz się do dyskusji? Tylko po to żeby powiedzieć że zwisa Ci to czy tamto? Bo mnie to średnio interesuje, średnio ma to tez związek z tematem.


//EDIT:

@everth (na dole):
Cytat
@devnull - twoje problemy w postrzeganiu świata nie są moimi problemami - potraktuj to jako podsumowanie całego swojego postu a dla mnie możliwość nabicia licznika. Zresztą mi to zwisa.
podobnie jak Twoje problemu w czytaniu nie są moimi problemami, jednak irytują mnie gdy przekręca się mojego nicka.

Ten post edytował devnul 23.09.2010, 15:13:00


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
everth
post
Post #12





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


@devnull - twoje problemy w postrzeganiu świata nie są moimi problemami - potraktuj to jako podsumowanie całego swojego postu a dla mnie możliwość nabicia licznika. Zresztą mi to zwisa.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
essey
post
Post #13





Grupa: Zarejestrowani
Postów: 118
Pomógł: 5
Dołączył: 9.07.2003
Skąd: Wołów/Wrocław

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


Problem przy stosowaniu html5 i css3 pojawia się, jak już wspomnieliście, przy próbie stworzenia kompatybilnej witryny z wstecznymi przeglądarkami. Niemniej nie zniechęcam użytkownika do uczenia się i stosowania nowego języka.
HTML5 i CSS3 wciąż są w fazie "rozwojowej". To, że google pozwoliło sobie na wprowadzenie html5, tylko dowodzi, że my tego nie powinniśmy jeszcze robić smile.gif Nie ukrywam, videoplayer na youtube w wersji beta napisany pod html5 jest wygodny.

Niestety często tworząc aplikacje dla klientów, musimy sięgać do rozwiązań, które nie zawsze idą z duchem czasu. W tym wypadku jest to html4. Dam sobie rękę obciąć, że to właśnie o tą wersję pytał "8rol". Dlatego też nie widzę potrzeby, aby podobne dywagacje miały tu miejsca. Odpowiedź została udzielona. Jeżeli chcecie popolemizować na ten temat, zapraszam do innego działu.
Go to the top of the page
+Quote Post
devnul
post
Post #14





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


Cytat(essey @ 23.09.2010, 16:47:50 ) *
Problem przy stosowaniu html5 i css3 pojawia się, jak już wspomnieliście, przy próbie stworzenia kompatybilnej witryny z wstecznymi przeglądarkami. Niemniej nie zniechęcam użytkownika do uczenia się i stosowania nowego języka.
HTML5 i CSS3 wciąż są w fazie "rozwojowej". To, że google pozwoliło sobie na wprowadzenie html5, tylko dowodzi, że my tego nie powinniśmy jeszcze robić smile.gif Nie ukrywam, videoplayer na youtube w wersji beta napisany pod html5 jest wygodny.

Niestety często tworząc aplikacje dla klientów, musimy sięgać do rozwiązań, które nie zawsze idą z duchem czasu. W tym wypadku jest to html4. Dam sobie rękę obciąć, że to właśnie o tą wersję pytał "8rol". Dlatego też nie widzę potrzeby, aby podobne dywagacje miały tu miejsca. Odpowiedź została udzielona. Jeżeli chcecie popolemizować na ten temat, zapraszam do innego działu.

no bez przesady to nie jest nowy język to jest rozbudowana wersja starego języka, różnic jest wiele, ale poprawnie napisany kod w html4 działa po naprawdę drobnych zmianach jako html5
polecam na początek i dalsze przegooglanie się przez temat. A to że google sobie pozwoliło to jest właśnie świetny argument za bo skoro oni docierając na setki różnych konfiguracji sprzętowo-softwarowych pozwolili sobie na taki krok to znaczy że jest to już na tyle bezpieczne że w obrębie storny którą odwiedzać będzie znikomy promil użytkowników internetu możesz sobie śmiało na to pozwolić


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
essey
post
Post #15





Grupa: Zarejestrowani
Postów: 118
Pomógł: 5
Dołączył: 9.07.2003
Skąd: Wołów/Wrocław

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


@devnul, ja na to patrzę nieco inaczej. Google jest gigantem w branży informatycznej. Oni mogą sobie pozwolić na narzucanie własnego zdania na praktycznie każdy temat. Ludzie pomarudzą, pomarudza, a w rezultacie przyznają im rację. Oni tworzą trendy - że tak się wyrażę smile.gif Wprowadzili HTML5, ale w tym samym czasie również Google Frame.
W wypadku klientów indywidualnych, kiedy on żąda, aby strona chodziła właśnie na JEGO komputerze, na JEGO przeglądarce, której używa od wielu lat, a jest staromodnym człowiekiem i nie lubi zmian, nie ma zamiaru instalować frame itd. to wdrożenie w pełni funkcjalnego CSS3 i HTML5 (bo to idzie w parze), jest niemożliwe.
A niestety, klient którego opisałem powyżej, to nie wytwór mojej wyobraźni, a smutny fakt polskiej szarej rzeczywistości. Klient nasz pan winksmiley.jpg

I o ile w swoich projektach mogę wdrażać nowe wersje języków programowani, o tyle w wypadku projektów zewnętrznych niejednokrotnie jest to nieosiągalne. Czas to zmieni.

Ten post edytował essey 23.09.2010, 16:20:15
Go to the top of the page
+Quote Post
devnul
post
Post #16





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


Cytat
W wypadku klientów indywidualnych, kiedy on żąda, aby strona chodziła właśnie na JEGO komputerze, na JEGO przeglądarce, której używa od wielu lat, a jest staromodnym człowiekiem i nie lubi zmian, nie ma zamiaru instalować frame itd. to wdrożenie w pełni funkcjalnego CSS3 i HTML5 (bo to idzie w parze), jest niemożliwe.
A niestety, klient którego opisałem powyżej, to nie wytwór mojej wyobraźni, a smutny fakt polskiej szarej rzeczywistości. Klient nasz pan
zatrudnij handlowca, skoro klient nie rozumie że strony nie robisz dla niego tylko dla jego klientów/użytkowników a odsetek osób korzystających z przestarzałych rozwiązań jest coraz mniejszy w sporej części przypadków wręcz oscyluje na granicy błędu statystycznego. Jeżeli nie potrafisz wytłumaczyć że rzecz A jest dla niego lepsza niż rzecz B to działasz zarówno na swoją jak i na jego szkodę. Na swoją bo utrzymujesz obecny stan rynku, a czemu na jego szkodę to już tłumaczyć chyba nie trzeba


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
8rol
post
Post #17





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 10.10.2009

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


Cytat(Damonsson @ 23.09.2010, 00:17:50 ) *
Może, nadaj
  1. a {
  2. display: block
  3. }


? ;>


Od początku tak mam, jednak nic to przecież nie zmienia, gdyż dla walidatora liczy się poprawność szkieletu html.

Cytat(essey @ 23.09.2010, 14:06:06 ) *
Jeżeli chcesz zrobić to za pomocą div'a z powodu np. zawartości w nim (np. nie tylko link, ale jakieś ramki itd.), polecam korzystanie ze znacznika <span></span>, któremu również możesz nadać parametr display:block i pozycjonować wewnątrz <a></a>, a dodatkowo jest zgodny ze standardami.


Rozwiązanie też nie najlepsze, gdyż wewnątrz diva którego chce umieścić w <a> znajdują się inne divy, obrazki itp.
Zamiana głównego diva na span skutkuje tym, że pojawią się problem taki, że w elemencie liniowym <span> nie może znaleźć się blokowy div itd.

No nic, albo będę musiał tak to zostawić (div bezpośrednio jako nazwa hiperłącza [przy Document type html 4]) lub pomyśleć nad przejściem na html5.

Jak ktoś ma jeszcze jakaś koncepcję to chętnie ją poznam.
Pozdrawiam smile.gif
Go to the top of the page
+Quote Post
devnul
post
Post #18





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


to może zwyczajnie?
  1. <div onclick="document.location='http://nowyadres.pl/';">costamwdivie</div>


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
essey
post
Post #19





Grupa: Zarejestrowani
Postów: 118
Pomógł: 5
Dołączył: 9.07.2003
Skąd: Wołów/Wrocław

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


Cytat(8rol @ 22.09.2010, 23:14:07 ) *
Początkowo zrobiłem to za pomocą zdarzenia onclick przypisanego do tego diva.


Cytat(devnul @ 23.09.2010, 19:08:30 ) *
to może zwyczajnie?
  1. <div onclick="document.location='http://nowyadres.pl/';">costamwdivie</div>

Uważne czytanie to klucz do sukcesu.

8rol możesz wkleić html ewentualnie screen efektu końcowego. Pomożemy Ci z skonstruowaniem tego w zgodzie z walidacją.

Ten post edytował essey 23.09.2010, 19:15:49
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 Aktualny czas: 22.08.2025 - 09:30