J'ai appris de ceci post qui utilise toujours <a>
balises ou <button>
balises pour faire le bouton. Maintenant j'essaie d'utiliser <a>
tag. Ma question est la suivante: existe-t-il un moyen d'augmenter la zone cliquable du tag? Disons que j'utilise <a>
dans une boîte de dialogue. Je veux que la boîte de dialogue entière devienne un bouton. Puis-je changer la zone de clic sur la boîte entière? Merci pour ton aide.
Modifier:
La réponse de @ t1m0thy est plus élégante que la mienne, il vaut mieux suivre ses conseils.
Aussi, lien de Nice proposé par @ aldemarcalazans dans les commentaires: https://davidwalsh.name/html5-buttons .
Réponse originale:
Utilisation <a />
lorsque vous avez besoin d’un lien (le a de ancre). Utilisation <button />
quand vous avez besoin d'un bouton.
Cela dit, si vous avez vraiment besoin d’agrandir un <a />
, ajoutez l'attribut CSS display: block;
dessus. Vous pourrez alors spécifier une largeur et/ou une hauteur (c'est-à-dire comme s'il s'agissait d'un <div />
).
Pour augmenter la surface d'un lien de texte, vous pouvez utiliser le css suivant;
a {
display: inline-block;
position: relative;
z-index: 1;
padding: 2em;
margin: -2em;
}
Oui, vous pouvez utiliser HTML5, ce code est valide pas autrement:
<a href="#foo"><div>.......</div></a>
Si vous n'utilisez pas HTML5, vous pouvez créer votre lien block
:
<a href="#foo" id="link">Click Here</a>
CSS:
#link {
display : block;
width:100px;
height:40px;
}
Notez que vous ne pouvez appliquer width
, height
qu'après avoir créé votre élément de niveau bloc de liens.
Il suffit de faire l'ancre display: block
et width/height: 100%
. Par exemple:
.button a {
display: block;
width: 100%;
height: 100%;
}
jsFiddle: http://jsfiddle.net/4mHTa/
ajoutez padding
à la classe CSS de la balise anchor. Si nécessaire, ajoutez padding-top
, padding-bottom
, ... individuellement en fonction de la zone cliquable souhaitée. Cela a fonctionné pour moi.
Si vous utilisez HTML 5, c’est-à-dire le doctype
<!doctype html>
alors vous pouvez simplement utiliser liens de niveau bloc .
<a href="google.com">
<div class="hello">
..
</div>
</a>
Vous pouvez essayer d’utiliser display: block ou display: inline-block. Un tutoriel de Nice peut être trouvé ici: http://robertnyman.com/2010/02/24/css-display-inline-block-why-it-rocks-and-why-it-sucks/ =
utilisez la propriété css de position et définissez top, right, bottom et left to Zero .. définissez z-index si nécessaire dans mon cas dans i utilisé text-indent parce que je ne veux pas montrer le lien "text" mais si vous voulez montrer le lien " text ", juste n'utilisez pas text-indent
display:block;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
text-indent: -99999px;