Lien sur une Div

Eléphant du PHP | 59 Messages

07 févr. 2008, 18:14

Bonjour,

Je cherche à faire une lien sur une div, j'ai cette solution qui marche mais qui n'est pas valide niveau html:

Code : Tout sélectionner

<a href="http://google.com"> <div>...</div> </a>
Sinon j'ai la solution javascript qui est valide mais qui ne convient pas parce qu'on peut plus faire de Clic droit > Ouvrir dans une nouvelle fenêtre / Ouvrir dans un nouvel onglet

Y a-t-il une solution à ce problème?

Mammouth du PHP | 2937 Messages

07 févr. 2008, 18:24

Un élément en ligne (comme A) ne peut pas contenir d'élément de bloc (comme DIV).

Par conséquent, la seule solution, c'est celle-ci :

Code : Tout sélectionner

<div><a href="http://www.google.com">Google</a></div>
Enfin, une autre solution est possible : tu codes comme suit :

Code : Tout sélectionner

<a href="http://www.google.com"><span>...</span></a>
et en CSS, tu ajoutes la règle suivante :

Code : Tout sélectionner

a span { display: block; }
pour que l'élément SPAN (qui est un élément en ligne, qui peut donc être fils d'un autre élément en ligne) puisse se comporter comme si c'était un élément de bloc (comme DIV).

Est-ce que ça répond à ta question (qui n'était pas suffisamment précise, soit dit en passant) ? ;)

d0m
Mammouth du PHP | 1141 Messages

07 févr. 2008, 18:35

... ta question qui n'était pas suffisamment précise, soit dit en passant...
La question est simple et précise.
C'est une question que je me posais aussi.
Un div est un conteneur. On peut l'assimiler à un "rectangle", un "cadre". La question était comment faire de tout ce cadre un lien vers une autre page.

Eléphant du PHP | 59 Messages

07 févr. 2008, 18:46

ça répond tout à fait à ma question, je n'avais pas pensé à tester cette solution parce que je me disais qu'une balise span avec display:block revenait au même qu'une div mais ce n'est pas le cas

le validateur w3c me dit Congratulations et 0 erreur

donc Congratulations à Victor BRITO :wink:

(Désolé pour le manque de précisions, au niveau du titre surtout j'avou que j'ai fais un peu light)

Merci beaucoup