Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [XHTML + CSS] Link obejmujacy cala tabele, Poprawna walidacja takiej strony
MySQL
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 3.06.2008

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


Czy jest mozliwosc aby link objal cala tabele i w dodatku zeby byla taka strona zgodna ze standardem XHTML?

Kiedy robie cos takiego:

  1. <a href="index.php">
  2. <tr>
  3. <td>Tekst</td><td>Tekst2</td>
  4. </tr>
  5. </table>
  6. </a>


i sprawdzam na stronie http://validator.w3.org/ to wyswietla mi blad w postaci:
One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>").

Jak mozna to obejsc obojetnie na jaki sposob, zeby cala tabela stala sie linkiem? Linkowanie kazdej komorki nie wchodzi w gre bo chcialbym osiagnac taki efekt, ze po najechaniu na jakakolwiek komorke tabeli, tlo calej tabeli troszke sie rozjasni (lub taki podobny). Tak jak jest to na niektorych forach, ze po najechaniu na ktorys z watkow caly wiersz sie podswietla (taki fajny efekt).

Priorytetem jest oczywiscie to, zeby strona dobrze walidowala sie w standardzie XHTML.

----- moje hipotetyczne rozwiazanie -----

Myslalem nad czyms takim:

  1. <a class="linkTab" href="index.php">
  2. <tr>
  3. <td>Tekst</td><td>Tekst2</td>
  4. </tr>
  5. </table>
  6. </a>


a w pliku ze stylami dac:

  1. a.linkTab
  2. {
  3. display: block;
  4. }


Oczywiscie nadal strona bedzie pokazywac bledy bo nie wie nic o klasie linkTab ale logicznie element blokowy jest juz w elemencie blokowym.

Ten post edytował achaja 31.03.2009, 12:29:14
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #2





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

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


tak jak piszesz, element liniowy nie może otaczać elementu blokowego.
Podejrzewam, że na tych niektórych forach, gdzie pola podświetlają się po najechaniu myszką, wykorzystuje się pseudoklasę hover (javascript'owe onMouseOver lub onMouseEnter), a że w niektórych "przeglądarkach" pseudoklasa hover działa tylko dla linków, to wszystko robi się za pomocą javascript (dla tej przeglądarki).

Czyli niczym nie musisz obejmować swojej tabeli. Wystarczy, że jakoś ją zidentyfikujesz, a w javascript zmienisz jej kolor po najechaniu myszką. Jeżeli chcesz link mieć z tabeli, to zamiast/oprócz koloru dodaj akcję onclick z window.location odpowiednim

Ten post edytował hiszpanespaniol 31.03.2009, 21:20:24
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: 23.08.2025 - 23:54