Si j'ai le code HTML suivant avec une classe CSS personnalisée:
<div class="custom_list_item">Test</div>
.custom_list_item { color: black; } .custom_list_item:hover { color: red; }
Cela fait en sorte que lorsque je survole la boîte entière, cela rend le texte rouge. Existe-t-il un moyen de m'assurer que cela ne se produit que lorsque je survole uniquement le texte lui-même?
4 Réponses :
Enveloppez-le en span puis en style span:
<div class="custom_list_item"> <span>Test</span> </div>
.custom_list_item { color: black; } .custom_list_item span:hover { color: red; }
Si vous changez p
en span
, vous avez une solution de travail;)
Oui. C'est une meilleure idée. Mise à jour de ma réponse en ce qui concerne vos conseils et votre réputation :) Merci.
Enveloppez-le dans un span
. Un p
s'étendrait sur toute la largeur de div
.
<div class="custom_list_item"><span>Test</span></div>
.custom_list_item { color: black; } .custom_list_item span:hover{ color: red; }
Oui merci, c'est parfait. J'utilisais un p plus tôt et j'ai réalisé que cela n'aidait pas ma situation.
Modifiez la propriété d'affichage de cette division à partir de block
à inline-block
. Aucun élément supplémentaire tel que les délais n'est nécessaire.
<div class="custom_list_item">Test</div>
.custom_list_item { color: black; display:inline-block; } .custom_list_item:hover { color: red; }
Les divs sont des éléments de niveau bloc par défaut et occuperont toute la largeur de leur élément parent.
Vous pouvez envelopper un intervalle pour votre div et définir l'étendue: hover
<div class="custom_list_item"><span>Test</span></div>
.custom_list_item { color: black; } span:hover{ color: red; } div{ border: 3px solid red; }
vous pouvez envelopper le texte dans un élément de paragraphe et y ajouter votre style. Est-ce clair pour vous?
Comme @ 08691 l'a dit ci-dessous, il s'agit d'un concept d'affichage simple. Un div par défaut a un bloc d'affichage, de sorte que div obtient tout l'espace disponible. Si vous voulez que .custom_list_item. obtenir uniquement la largeur du contenu, il suffit de modifier l'affichage des blocs par défaut donné aux DIV avec affichage: inline-block; Juste: .custom_list_item {display: inline-block; la couleur noire; }
@AlbertoFortes Non, en fait ce n'est pas ce que j'essaie d'accomplir. Étant donné que cela est destiné à être utilisé comme élément de liste, si je configure l'affichage sur blocage en ligne, il survolera toujours la boîte entière s'il y a un autre élément qui a un bloc de contenu plus large. La travée fonctionne parfaitement.