Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML]<div w <a - alternatywa
Forum PHP.pl > Forum > Przedszkole
DiamondPir
witam...
potrzebuję zrobić box/div w którym będę miał <table
i muszę dodać taką akcję, że jak kliknę gdziekolwiek na ten box to mnie przenosi na podany link

kod:
  1. <a href="http://strona.pl/" >
  2. <div>tabela</div>
  3. </a>


nie jest dobrym rozwiązaniem.
Potrzebuję alternatywy...

proszę o pomoc
b4rt3kk
Nie wiem za bardzo o co chodzi? Żeby cała tabela była linkiem?

A jeśli chcesz by link był wyświetlany blokowo, jak div, to dodaj w css:

  1. a {
  2. display: block;
  3. }
DiamondPir
chodzi właśnie o to żeby cała tabelka była linkiem...
Twój przykład oczywiście mogę wykorzystać ale wstawiając tabelkę w <a> nie jest to dobre rozwiązanie...
czy nie można np zrobić <div onclick="load:http://strona.pl" czy coś w tym stylu?
Spawnm
Tak na szybko to np:
Kod
$('#my_div').click(function(){
   window.location = 'http://strona.pl';
});

Oczywiście w czystym js będzie lepiej i szybciej jeśli nie korzystasz z jquery.
kamil4u
Cytat
Tak na szybko to np:

Bez przesady - tu wystarczy CSS

Tak jak pisano: display: block; , ale odwrotnie wsadzone elementy: http://jsfiddle.net/r84ph/
DiamondPir
zobaczcie co chcę osiągnąć...: http://jsfiddle.net/5dLYU/

w <a chcę mieć mniejsze boxy w których będę sobie mógł wstawiać jakieś teksty...
i pytam czy rozwiązanie które przedstawiłem jest poprawne... Czy wstawienie DIVÓW w A jest poprawne pod względem walidacji i czy to działa na każdej przeglądarce...


CuteOne
nie jest poprawne.. skorzystaj z przykładu Spawnm'a
Pawel_W
a właśnie że jest, html5 już dopuszcza wink.gif

tutaj źródło: http://html5doctor.com/block-level-links-in-html-5/
Damonsson
Mimo wszystko, radzę zastosować się do rady użytkownika @kamil4u.
Pawel_W
robienie setki linków to nie jest dobry pomysł, chyba po to właśnie powstają tego typu ułatwienia? a z tego co wiem to nawet IE6 nie ma z tym problemu wink.gif
kamil4u
A nie można poprawnie i bez kombinowania? http://jsfiddle.net/r84ph/1/

--edit--
A racja... nie doczytałem... Tylko "po co?"
Damonsson
Cały szkopuł w tym, że autor tematu chce trochę "oszukać" użytkownika i te boxy są fikcyjne, tak naprawdę kliknięcie w obrębie całego DIVa ma przenosić na stronę X, więc polemizowanie jak to zrobić jest trochę bez sensu, bo zawsze będzie to niepoprawne, cokolwiek by ktoś wymyślił.
DiamondPir
CSS tutaj nie wystarczy bo jednak mój ostatni przykład stąd http://jsfiddle.net/5dLYU/ nie zachowuje się poprawnie na IE w trybie zgodności...

No ale wyskrobałem to na nowo według przykładu Spawnm http://jsfiddle.net/5dLYU/1/
niby działa ale czy takie rozwiązanie będzie działać na każdej przeglądarce?
Paeeo
Bez sensu... closedeyes.gif

Robisz normalnie linki (<a>), w jego środku span'y z display: table oraz table-cell/row jak wolisz... Możesz robić span w spanie. Ważne, aby nie robić <p> w spanie bo zwróci błąd.
Przykład:

<a href="">
<span style="display:table;width:200px;height:100px;background:#444;">
<span style="display:table-cell;width:50px;">asd</span>
<span style="display:table-cell;width:50px;">asd</span>
<span style="display:table-cell;width:50px;">asd</span>
<span style="display:table-cell;width:50px;">asd</span>
</span>
</a>
DiamondPir
acha no też można... prześpię się i przetestuję jak to będzie chodzić na IE
Paeeo
Możesz też sprawić, aby wewnętrzny span (załóżmy jakiś w span style="display:table-cell") był traktowany jako akapit (<p>), dla lepszego traktowania przez Google, przy pomocy jQuery. Nie wiem czy zwróci błąd (trzeba testować), ale spokojnie spany Ci wystarczą smile.gif Pozdrawiam!
Pawel_W
Cytat(Paeeo @ 6.09.2012, 01:08:51 ) *
Bez sensu... closedeyes.gif

Robisz normalnie linki (<a>), w jego środku span'y z display: table oraz table-cell/row jak wolisz... Możesz robić span w spanie. Ważne, aby nie robić <p> w spanie bo zwróci błąd.

pod IE7 nie przejdzie wink.gif

co do wersji @Spawnma zadziała, o ile ktoś ma włączoną obsługę js (można spokojnie założyć że wszyscy), ale tworzenie takich linków ma katastrofalne znaczenie dla seo wink.gif
zegarek84
  1. .mylink {text-decoration:none;color:#000;
  2. display:block;
  3. position:absolute;
  4. left:0;
  5. top:0;
  6. width:100%;
  7. height:100%;
  8. }
  9. .box {position:relative;}

  1. <div class="box">
  2. <tr>
  3. <td>1</td>
  4. <td>2</td>
  5. </tr>
  6. <tr>
  7. <td>3</td>
  8. <td>4</td>
  9. </tr>
  10. <tr>
  11. <td>5</td>
  12. <td>6</td>
  13. </tr>
  14. <a href="http://www.google.pl" class="mylink">
  15. </a>
  16. </div>

http://jsfiddle.net/zegarek84/PgK3Q/2/
soją drogą nie widzę nic złego w tym, aby wszystko objąć linkiem skoro html5 na to pozwala i w dodatku wszystkie przeglądarki od dawien dawna poprawnie to obsługiwały...
http://jsfiddle.net/zegarek84/PgK3Q/
DiamondPir
jedynym sposobem który działa na starych IE (w trybie zgodności) jest sposób ze spanem w linku:

  1. <a href="">
  2. <span style="display:table;width:200px;height:100px;background:#444;">
  3. <span style="display:table-cell;width:50px;">asd</span>
  4. <span style="display:table-cell;width:50px;">asd</span>
  5. <span style="display:table-cell;width:50px;">asd</span>
  6. <span style="display:table-cell;width:50px;">asd</span>
  7. </span>
  8. </a>


tyle tylko że jeśli najedzie się kursorem na span to kursor zmienia wygląd na text (zaznaczanie) i trzeba jedynie dodać w css:

  1. cursor:pointer;


wtedy to działa prawidłowo i prawidłowo wygląda...

opcje z divami w <a nie są poprawne bo IE ich nie otwiera
Pawel_W
Cytat(DiamondPir @ 7.09.2012, 20:02:35 ) *
opcje z divami w <a nie są poprawne bo IE ich nie otwiera

ciekawe, sprawdzałem pod IE6,7,8,9 i działało smile.gif może masz błędy w kodzie i włącza Ci się quirks mode?
DiamondPir
może i otwiera ale weź dodaj HOVER do linki i sprawdź czy będzie się zachowywał poprawnie
dodaj zmienne tło - będzie mrugać podczas poruszania się po całym linkowym boksie
zegarek84
raczej szukanie dziury w całym... weź sobie zainstaluj ie4 lub starsze, wróć na forum i napisz co tu nie działa poprawnie - na pewno coś się znajdzie ;]
Pawel_W
Cytat(zegarek84 @ 7.09.2012, 23:55:07 ) *
raczej szukanie dziury w całym... weź sobie zainstaluj ie4 lub starsze, wróć na forum i napisz co tu nie działa poprawnie - na pewno coś się znajdzie ;]

polać mu! smile.gif nie rozumiem podejścia niektórych uczestników dyskusji: nie ładnie jest wrzucić diva do a, lepiej szukać jakiegoś rozjechanego fixa (pomijam oczywiście tych którzy mieli jakieś argumenty za)
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.