J’ai ce qui suit:
some text a div
Je voudrais faire tout le
un hyperlien. Je préférerais sans l’utilisation de JavaScript. Est-ce possible?
Oui, c’est possible, même si ce n’est pas littéralement le
, mais ce qu’il contient. L’astuce simple est de s’assurer que le contenu s’étend jusqu’aux bordures de la cellule (il n’inclura pas les bordures elles-mêmes).
Comme déjà expliqué, ce n’est pas sémantiquement correct. Un élément est un élément en ligne et ne doit pas être utilisé comme élément de niveau bloc. Cependant, voici un exemple (mais JavaScript plus un style CSS td: hover sera beaucoup plus net) qui fonctionne dans la plupart des navigateurs:
hello world
PS: il est en fait plus simple de changer a
élément au niveau d’un bloc en utilisant CSS comme expliqué dans une autre solution de ce fil . ça ne marchera pas bien dans IE6, mais ce n’est pas une nouvelle;)
Si votre monde est uniquement Internet Explorer (rare, de nos jours), vous pouvez violer le standard HTML et écrire ceci, cela fonctionnera comme prévu, mais sera très mal vu et considéré comme mal avisé (vous n’avez pas entendu ceci ). Tout autre navigateur qu’IE ne rendra pas le lien, mais affichera la table correctement.
hello world
Utilisez ce code. Il développe un pour remplir la cellule horizontalement. Pour remplir verticalement, utilisez également la propriété
height
.
td a { width: 100%; display: block; } td { /* Cell styles for demonstration purposes only */ border: 1px solid black; width: 10em; }
Hello World
Je recommande d’utiliser un élément d’ancrage réel et de le définir comme bloc.
.divBox { width: 300px; height: 100px; } .divBox a { width: 100%; height: 100%; display: block; }
Cela définira l’ancre aux mêmes dimensions que le div parent.
Voici ma solution:
SomeText
(MOINS)
td { padding: 1%; vertical-align: bottom; position:relative; a { height: 100%; display: block; position: absolute; top:0; bottom:0; right:0; left:0; } .item-container { /*...*/ } }
Comme cela, vous pouvez toujours bénéficier de certaines propriétés de cellule de tableau, telles que vertical-align
. (Testé sur Chrome)
Je voudrais faire le td entier un hyperlien. Je préférerais sans javascript. Est-ce possible?
Ce n’est pas possible sans JavaScript. En outre, ce ne sera pas un balisage sémantique. Vous devriez plutôt utiliser link sinon il s’agit de joindre le onclick
à
pour redirect vers une autre page.
Vous pouvez créer la table de votre choix, l’enregistrer en tant qu’image, puis utiliser une image pour créer le lien (de cette façon, vous pouvez insérer les coordonnées du trou td dans un lien).