2010-12-02 28 views
2

Ne pas lier à javascript "onclick".Comment rendre l'intégralité du DIV cliquable pour aller à une autre page?

Il doit s'agir d'une ancre.

Je sais que je peux lier onclick au div et le rendre window.location. Cependant, alors ... l'utilisateur ne peut pas ouvrir un nouvel onglet en CONTROL + cliquant dessus.

Je veux juste un <a> qui remplit le div entier.

+1

Veuillez préciser. Un DIV peut avoir un clic, donc vous faites quelque chose d'autre qui ne va pas. Publiez du code. –

+0

Avez-HTML5 "href n'importe où" aller n'importe où? – Thilo

+1

Pourquoi n'utilisez-vous pas uniquement l'étiquette d'ancrage? Vous pouvez le style pour ne pas avoir d'effet de lien –

Répondre

12

Essayez le réglage de l'ancre pour afficher un bloc dans votre DIV et en définissant sa hauteur à 100%, comme ceci:

<style> 
    a { display: block; height: 100% } 
    #test { width: 100px; height: 200px; background: red; } 
</style> 


<div id='test'><a href='#'>...</a></div> 

Vous pouvez voir un travail exemple ici: http://jsbin.com/ujoca3/2/edit

+0

Ceci est correct. – TIMEX

+0

Qu'en est-il de 'width: 100%'? Ou suis-je raté quelque chose ... – Fred

+0

Oui, la largeur: 100% aussi. – TIMEX

0
<div> 
    <a href="somepage.php" style="display: block; height:100%; width: 100%; margin: 0; padding: 0;"></a> 
</div> 
+0

Cela ne fonctionne pas car les ancres sont des éléments en ligne par défaut, et vous ne pouvez pas leur donner une hauteur de cette manière. – Erik

+0

Merci pour le commentaire! J'aurais dû réaliser cela :) – Fred

0

certains html:

<div><a href="#"></a></div> 

code CSS

yourdiv { position: relative; } 
yourdiv a { position:absolute; left:0;right:0;top:0;bottom:0; } 
+0

Peut-être faire la 'position: relative! Important;' – Fred

+0

je ne sais pas pourquoi je suis downvoted ... fonctionne pour moi http://jsbin.com/obite3/edit – choise

2

La manière sémantique de le faire serait de faire agir l'ancre comme un div. Parce que vous ne voulez rien d'autre dans le conteneur, il n'y a pas de raison d'avoir un conteneur.

<style> 
    a.fakeDiv, a.fakeDiv:link, a.fakeDiv:hover, a.fakeDiv:active, a.fakeDiv:visited{ 
     display: block; 
     text-decoration: none; 
     color: Black; 
     cursor: default; 
     outline: none; 
    } 
</style> 
<a class="fakeDiv">Content</a>