Ce que j'essaie...
J'essaie de créer un menu avec un effet de survol. Si vous survolez un lien, sa couleur de fond doit changer. Si vous passez au lien suivant, la couleur de fond doit changer en douceur.
Problème
Lorsque vous survolez un lien et que vous passez au suivant, il y a un petit espace entre les éléments. Si votre souris se trouve à cet endroit précis, rien ne se passe.
Exemple de travail
.menu-item {
list-style: none;
float: left;
text-transform: uppercase;
font-size: 21px;
line-height: 30px;
}
a {
padding: 20px;
}
a:hover {
background-color: green;
}
<div id="menu">
<ul class="menu-list">
<li class="menu-item"><a href='#'>Menü #1</a></li>
<li class="menu-item"><a href='#'>Menü #2</a></li>
<li class="menu-item"><a href='#'>Menü #3</a></li>
</ul>
</div>
Exemple de non-fonctionnement
.menu-item {
list-style: none;
float: left;
text-transform: uppercase;
font-size: 20px;
line-height: 30px;
}
a {
padding: 20px;
}
a:hover {
background-color: green;
}
<div id="menu">
<ul class="menu-list">
<li class="menu-item"><a href='#'>Menü #1</a></li>
<li class="menu-item"><a href='#'>Menü #2</a></li>
<li class="menu-item"><a href='#'>Menü #3</a></li>
</ul>
</div>
Mon observation
Si vous modifiez le font-size
d'un seul pixel, cela fonctionne. Si j'utilise IE, les deux exemples fonctionnent, mais dans Chrome, seul celui qui fonctionne fonctionne :D
Ce que je demande...
S'agit-il d'un bug de Chrome ou existe-t-il une possibilité de faire fonctionner le "non fonctionnel".
1 votes
C'est un extrait très intéressant - j'ai expliqué le problème dans ma réponse, mais en bref, c'est essentiellement à cause de la propriété d'affichage intégrée de la balise
a
associée à un style par défaut dans le navigateur Chrome. Bien vu. Et +1 pour une question très bien écrite.1 votes
Mon upvote à une très belle question
1 votes
Les deux fonctionnent bien ici dans Chrome 57 et Opera 44 sur macOS. Les exemples ont-ils changé ou s'agit-il d'un problème avec les anciennes versions de Chrome ?
0 votes
@OptimusCrime Je peux toujours reproduire le problème sur mon Chrome - si vous voulez une clarification, sur le deuxième exemple, il y a une seule ligne (1px de largeur) entre les deux
a
des balises qui ne devraient pas y figurer. Lesa
doivent être placées directement l'une à côté de l'autre.