J'ai ajouté une classe "spoiler" en CSS à utiliser pour, ainsi, les spoilers. Le texte est normalement invisible mais apparaît lorsque la souris le survole pour révéler le spoiler à qui veut le lire.
.spoiler{
visibility:hidden;
}
.spoiler:hover {
visibility:visible;
}
Devrait être simple, mais pour une raison quelconque, cela ne fonctionne pas. Le texte reste invisible même lorsque je pointe la souris dessus. Une idée de ce qui pourrait être la cause de cela?
Vous ne pouvez pas survoler un élément caché. Une solution consiste à imbriquer l'élément dans un autre conteneur:
CSS:
.spoiler span {
visibility: hidden;
}
.spoiler:hover span {
visibility: visible;
}
HTML:
Spoiler: <span class="spoiler"><span>E.T. phones home.</span></span>
Démo:
Sur Chrome, les éléments suivants peuvent être ajoutés:
.spoiler {
outline: 1px solid transparent;
}
Démo mise à jour: http://jsfiddle.net/DBXuv/148/
Cela fonctionne non seulement pour le texte
.spoiler {
opacity:0;
}
.spoiler:hover {
opacity:1;
-webkit-transition: opacity .25s ease-in-out .0s;
transition: opacity .25s ease-in-out .0s;
}
Lorsque le texte est invisible, il n'occupe pratiquement pas d'espace. Il est donc pratiquement impossible de déclencher un événement de survol.
Vous devriez essayer une autre approche, par exemple, changer la couleur de la police:
.spoiler{
color:white;
}
.spoiler:hover {
color:black;
}
La pseudo-classe :hover
ne concerne que les balises a
, conformément à la spécification CSS. Les agents utilisateurs ne sont pas tenus de prendre en charge :hover
pour les balises non-ancres conformément à la spécification .
Si vous souhaitez utiliser CSS pour rendre visible le texte de votre spoiler, vous devez placer des balises <a>
autour du contenu de votre spoiler. Cela signifiera bien sûr que la souris se transformerait en pointeur, mais vous pouvez le supprimer en ajoutant cursor: none;
.
Si ça ne marche pas, essayez
.spoiler span {
visibility: hidden;
line-height:20px;
}
.spoiler:hover span {
visibility: visible;
line-height:20px;
}