2017-07-13 5 views
1

Est-il possible de créer un élément :hover sur l'élément :before afin que quelque chose s'affiche dessus?Problèmes de survol et avant CSS3

enter image description here

enter image description here

+1

https://stackoverflow.com/questions/5777210/how-to-write-hover-condition-for-abefore-and-aafter – onetwo12

+0

Possible copie de [Comment écrire: condition hover pour un: avant et un: après? ] (https://stackoverflow.com/questions/5777210/how-to-write-hover-condition-for-abefore-and-aafter) – cjl750

Répondre

1

Oui, il peut être fait comme ..

.selector:hover:before {/* css rule goes here */} 
0

Il est impossible d'ajouter un style :hover (ou :active, ou :focus) à des éléments tels que :before ou :after. Ils devraient être appliqués à un élément HTML réel, pas à un pseudo-élément. De votre capture d'écran, il apparaît que vous essayez de créer un menu de survol. Selon vos styles, vous pouvez appliquer les styles :hover à l'ul lui-même. Cependant, vous ne pourrez contrôler que les styles ul avec CSS - vous ne pouvez pas contrôler les styles li en fonction de l'état du survol de leur parent sans JS.

Si JS est une option, utilisez-la - elle devrait être assez simple dans ce cas, et faciliterait grandement le code. Si css-only est requis, vous pouvez contourner ce problème en réglant le <ul> à une hauteur spécifique (assez grande pour afficher l'élément hover mais rien d'autre), et donner une hauteur plus grande à ul:hover, ou height: auto;, etc.