Faire ensemble <li> lien avec HTML propre
Je sais que cela a été beaucoup de fois avant, mais je ne pouvais pas trouver toute solution dans mon cas précis.
J'ai une barre de navigation et je veux tout <li>
s'être "lié" ou "cliquables" si vous voulez. Maintenant, seul le <a>
(et le <div>
's que j'ai bricolé avec) est "cliquable".
J'ai essayé de la li a {display: inner-block; height: 100%; width: 100%}
méthode, mais les résultats sont tout simplement horrible.
La source peut être trouvé ici: http://jsfiddle.net/prplxr/BrcZK/
HTML
<!DOCTYPE html>
<html>
<head>
<title>asdf</title>
</head>
<body>
<div id="wrapper">
<div id="menu">
<div id="innermenu">
<ul id="menulist">
<li class="menuitem"><a href="index.php"><div class="menulink">Lnk1</div></a></li>
<li class="menuitem"><a href="index.php"><div class="menulink">Lnk2</div></a></li>
<li class="menuitem"><a href="index.php"><div class="menulink">Lnk3</div></a></li>
<li class="menuitem"><a href="index.php"><div class="menulink">Lnk4</div></a></li>
</ul>
</div>
</div>
</div>
</body>
</html>
Faire quelqu'un a une solution élégante à ce point?
Vous en remercie d'avance!
Si vous voulez
<li>
a cliquable alors vous avez besoin pour l'utilisation de Javascript, c'est que l'amende?OriginalL'auteur Christian Lundahl | 2012-12-06
Vous devez vous connecter pour publier un commentaire.
<div>
s.<a>
balises d'avoirdisplay: block
<li>
à la<a>
.<li>
s devra être flotté oudisplay: inline-block
Exemple: http://jsfiddle.net/8yQ57/
M'a sauvé des heures à essayer d'obtenir un lien à appliquer à un ensemble de diapositives sur un site Sharepoint. Juste eu à ajouter de la hauteur:100%.
OriginalL'auteur Steve Pugh
Suffit d'utiliser "afficher le bloc" pour le lien.
Voici l'exemple http://jsfiddle.net/TWFwA/ 🙂
li
(qui il est), alors il y aura encore unclickable de l'espace autour de laa
(qui va occuper tout l'espace horizontal jusqu'à le rembourrage.Bien sûr, le rembourrage doit être à l'intérieur le lien 🙂 c'est à l'intérieur de lien dans mon jsfiddle de l'échantillon. Je pense que c'est évident.
Bon modifications! 🙂
OriginalL'auteur starikovs
J'ai moi-même eu ce problème.
La réponse ne pouvait pas être plus simple:
en d'autres termes, vous voulez appliquer le css, que le LI eu de la Un élément. S'assurer que l'Un est un bloc de la ligne de l'élément
OriginalL'auteur Jamie Hutber
Je pense que vous avez peut-être voulu dire
inline-block
, pasinner-block
:Aussi,
inline-block
a son propre ensemble de problèmes avec les anciens navigateurs IE, et ne sera probablement pas réagir comment vous vous attendez.OriginalL'auteur Sean
sir vous utilisez jquery ?
si oui, vous pouvez l'essayer :
ou vous pouvez l'utiliser aussi comme css:
Choisir un ...
Bonne chance
position: absolute
sera la cause de lali
à perdre de la hauteur et de la largeur.OriginalL'auteur Michael Antonius
Juste formater le
a
directement au lieu de lali
avec vos styles.J'ai alterd votre violon http://jsfiddle.net/BrcZK/1/
OriginalL'auteur Jona
Voici ce que je fais:
Puis le style des ancres comme je l'entends.
Voici le violon: http://jsfiddle.net/erik_lopez/v4P5h/
OriginalL'auteur Erik
Vous devez en faire la
a
élémentsdisplay:block
oudisplay:inline-block
.Parce que apparaissant cliquable n'est pas la même chose que réellement cliquable. Et c'est encore pire UX.
vous avez raison, c'est une mauvaise conception.
OriginalL'auteur Mitchell
Déplacer le
<a>
balises afin qu'ils ajoutent la<li>
balises. Selon cette réponse, balises d'ancrage doit contenir les éléments en ligne, et il semble que votre<li>
s'sont en ligne, donc cela devrait être valable.<li>
sous tout sauf un<ul>
. Pas deul a li {}
permis.Le inline ou block de la nature de l'élément est défini dans la spécification HTML et n'est pas modifié par la propriété CSS display. display: inline juste fait quelque chose de regarder en ligne, il n'est pas réellement le faire en ligne.
En fait, c'est plus qu'un
<ul>
ne peut pas contenir n'importe quoi, sauf<li>
'.OriginalL'auteur Scott S