Je ne peux pas définir ma ligne de tableau comme lien vers quelque chose. Je ne peux utiliser que css et html. J'ai essayé différentes choses de div en ligne à quelque chose d'autre, mais je n'arrive toujours pas à le faire fonctionner.
html
css
hyperlink
html-table
Max Frai
la source
la source
Je me suis créé une fonction jquery personnalisée:
HTML
jQuery
Facile et parfait pour moi. Espérons que cela vous aide.
(Je sais que OP ne veut que du CSS et du HTML, mais considère jQuery)
Éditer
D'accord avec Matt Kantor en utilisant l'attr de données. Réponse modifiée ci-dessus
la source
data-href
ou un peu.<table class='tr_link' >
et donnez-la.tr_link{cursor:pointer}
en css pour une meilleure utilisation.tr[data-href] { cursor: pointer }
à vos feuilles de styleSi vous utilisez un navigateur qui le prend en charge, vous pouvez utiliser CSS pour transformer le
<a>
en une ligne de tableau:Bien sûr, vous êtes limité à ne pas mettre d'éléments de bloc dans le fichier
<a>
. Vous ne pouvez pas non plus mélanger cela avec un<table>
la source
Si vous devez utiliser un tableau, vous pouvez mettre un lien dans chaque cellule du tableau:
Et faites en sorte que les liens remplissent toutes les cellules:
Si vous pouvez utiliser
<div>
s au lieu d'un tableau, votre HTML peut être beaucoup plus simple, et vous n'aurez pas de "trous" dans les liens, entre les cellules du tableau:Voici le CSS qui accompagne la
<div>
méthode:la source
La méthode habituelle consiste à attribuer du JavaScript à l'
onClick
attribut de l'TR
élément.Si vous ne pouvez pas utiliser JavaScript, vous devez utiliser une astuce:
Ajoutez le même lien à chacune
TD
des mêmes lignes (le lien doit être l'élément le plus à l'extérieur de la cellule).Transformez les liens en éléments de bloc:
a { display: block; width: 100%; height: 100%; }
Ce dernier forcera le lien à remplir toute la cellule, donc cliquer n'importe où appellera le lien.
la source
Vous ne pouvez pas encapsuler un
<td>
élément avec une<a>
balise, mais vous pouvez réaliser des fonctionnalités similaires en utilisant l'onclick
événement pour appeler une fonction. Un exemple se trouve ici , quelque chose comme cette fonction:Et ajoutez-le à votre tableau comme ceci:
la source
La réponse de sirwilliam me convient le mieux. J'ai amélioré le Javascript avec le support du raccourci clavier Ctrl + Clic gauche (ouvre la page dans un nouvel onglet). L'événement
ctrlKey
est utilisé par les PC,metaKey
par Mac.Javascript
Exemple
http://jsfiddle.net/vlastislavnovak/oaqo2kgs/
la source
Je sais que cette question a déjà reçu une réponse mais je n'aime toujours aucune solution sur cette page. Pour les personnes qui utilisent JQuery, j'ai fait une solution finale qui vous permet de donner à la ligne du tableau presque le même comportement que la
<a>
balise.Voici ma solution:
jQuery Vous pouvez ajouter ceci par exemple à un niveau compris fichier javascript
HTML Vous pouvez maintenant l'utiliser sur n'importe quel
<tr>
élément de votre HTMLla source
document.querySelector('tr[url]').addEventListener("mousedown", function(e){ var click = e.which; var url = this.getAttribute("url"); if(url){ if(click == 1){ window.location.href = url; } else if(click == 2){ window.open(url, '_blank'); window.focus(); } return true; } });
Quand je veux simuler un
<tr>
avec un lien mais en respectant les standards html, je le fais.HTML:
CSS:
De cette façon, quand quelqu'un va avec sa souris sur un TR, toute la ligne (et ces liens) obtient le style de survol et il ne peut pas voir qu'il y a plusieurs liens.
L'espoir peut aider quelqu'un.
Violon ICI
la source
Cela vous évite d'avoir à dupliquer le lien dans le tr - il suffit de le pêcher dans le premier a.
la source
Quelque chose de ce genre peut-être? Bien qu'il utilise JS, mais c'est le seul moyen de rendre une ligne (tr) cliquable.
Sauf si vous avez une seule cellule avec une balise d'ancrage qui remplit toute la cellule.
Et puis, vous ne devriez pas utiliser de table de toute façon.
la source
Après avoir lu ce fil et quelques autres, j'ai trouvé la solution suivante en javascript:
Pour utiliser le mettre href dans tr / td / th que vous désirez être cliquable comme:
<tr href="http://stackoverflow.com">
. Et assurez-vous que le script ci-dessus est exécuté après la création de l'élément tr (par son placement ou en utilisant des gestionnaires d'événements).L'inconvénient est que les TR ne se comportent pas totalement comme des liens comme avec les divs avecEdit: J'ai fait fonctionner la navigation au clavier en définissant onkeydown, role et tabIndex, vous pouvez supprimer cette partie si seule la souris est nécessaire. Cependant, ils n'afficheront pas l'URL dans la barre d'état lors du survol.display: table;
, et ils ne seront pas sélectionnables au clavier ou n'auront pas de texte d'état.Vous pouvez styliser spécifiquement les TR de lien avec le sélecteur CSS "tr [href]".
la source
J'ai un autre moyen. Surtout si vous avez besoin de publier des données en utilisant jQuery
Set variable configure des variables dans SESSIONS que la page que vous allez consulter peut lire et sur laquelle agir.
J'aimerais vraiment avoir un moyen de publier directement dans une fenêtre, mais je ne pense pas que ce soit possible.
la source
Merci pour cela. Vous pouvez changer l'icône de survol en attribuant une classe CSS à la ligne comme:
et le CSS ressemble à:
la source
Pouvez-vous ajouter une balise A à la ligne?
Est-ce ce que vous demandez?
la source