CSS :hover ne fonctionne pas
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type='text/css'>
#body{
margin:0px;
}
#headerDiv{
background-color:#e0e2eb;
}
.header_innerHeaderDivs{
border:solid 1px gray;
display:inline;
font:normal 11px tahoma;
color:black;
}
.header_innerHeaderDivs:hover{
padding:4px;
}
</style>
</head>
<body id='body'>
<div id='headerDiv'>
<div class='header_innerHeaderDivs'>Comapny</div>
<div class='header_innerHeaderDivs'>Edit</div>
<div class='header_innerHeaderDivs'>Inventory</div>
<div class='header_innerHeaderDivs'>Logout</div>
</div>
</body>
</html>
À L'Aide De FireFox 3.6.3
- Je pense que le fait d'avoir ces div à l'ensemble de inline peut être à l'origine de tout un comportement indésirable. Mais je ne peux pas dire pour sûr, car vous n'avez pas indiqué une question ou fourni aucune information en plus de votre code.
- D_N: le :hover n'a pas d'effet dans (au moins) de Firefox. Scott: j'ai essayé de supprimer le display: inline, et qui n'a rien changé. Il semble que c'est un problème avec le sélecteur.
Vous devez vous connecter pour publier un commentaire.
si c'est une barre de navigation, il est préférable d'utiliser une liste de liens(son plus sémantique de cette façon) afin que votre hover fonctionne aussi dans ie( :hover ne fonctionne que pour un des éléments dans ie)
puis
également un conseil: essayez de s'abstenir de l'utilisation de "div" en tant que partie d'un nom de classe. il n'est pas utile/descriptif de la sémantique 🙂
Vous pourriez essayer:
#headerDiv div:hover{padding:4px;}
EDIT:
Si vous voulez que le div parent pour développer ensemble l'affichage des .header_innerHeaderDivs de inline-block.
Aussi, comme mentionné ci-dessus, vous pouvez définir votre déclaration de dtd pour:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
ou le html4.01 transitional de la variante.
J'ai eu ce problème aussi. Il semble que tout l'intérieur de la
div
changements dans:hover
mais pas lediv
lui-même. Vous pouvez donc avoir un contourdiv
qui affecte la:hover
.Et puis le css
Si vous passez le doctype XHTML transitional ou au-dessus de cela fonctionne. IL peut également travailler avec HTML strict ainsi si je n'ai pas essayer. Comme un général ruel si vous souhaitez utiliser
a
des balises pour l'plane, sauf si vous êtes dicter l'action par l'intermédiaire d'un js même gestionnaire.Fonctionne dans Safari. Êtes-vous tester sous IE, où
:hover
ne fonctionne que sura
éléments?EDIT: je l'ai testé dans Firefox, et ça ne fonctionne pas là-bas (fonctionne à l'Opéra, tout de même). À l'aide de
div.header_innerHeaderDivs
fixe... Peut-être que vous ne pouvez pas utiliser de pseudo-sélecteurs sur les classes? Il est valable de bien; peut-être un bug lié au navigateur.Si vous utilisez IE, alors vous aurez besoin d'ajouter
<!DOCTYPE html>
vers le haut. Sinon, c'est à dire est extra pointilleux et ne reconnaît:hover
sur les balises d'ancrage.EDIT:
Non-CSS alternative (à l'aide de jQuery .bind):
Je ne voudrais pas le mettre dans une balise script dans le milieu de votre fichier html comme dans le bloc de code (mieux dans un fichier js), mais vous obtenez l'idée. Je préfère l'utiliser pur CSS moi-même, mais c'est une option.