Comment obtenir un effet en cascade des éléments en HTML ?
P粉486138196
2023-08-28 16:39:50
<p>Je voulais créer une info-bulle personnalisée pour cet élément, mais elle est contenue dans une boîte qui n'a pas assez de place pour afficher l'info-bulle, elle est donc simplement recadrée (en fait, je peux faire défiler jusqu'à Il s'affiche car <code> ;overflow</code> est défini sur <code>auto</code>, mais je souhaite qu'il soit visible sans défilement). Existe-t-il un moyen de le faire afficher au-delà des limites ? J'ai essayé d'utiliser <code>z-index</code> mais cela n'a pas fonctionné. </p>
<p>Voici ce que j'ai dit :</p>
<p>
<pre class="brush:css;toolbar:false;">.box {
largeur : 100 px ;
hauteur : 100px ;
débordement : automatique ;
style de bordure : solide ;
couleur de la bordure : rouge ;
}
.info-bulle{
rembourrage supérieur : 20 px ;
position : relative ;
affichage : bloc en ligne ;
}
.tooltip .tooltiptexte {
affichage : aucun ;
largeur maximale : 60vw ;
largeur minimale : 15 vw ;
couleur de fond : blanc ;
style de bordure : solide ;
couleur de la bordure : #1a7bd9 ;
position : absolue ;
indice z : 1 000 000 ;
}
.tooltip: survolez .tooltiptext {
bloc de visualisation;
}</pré>
<pre class="brush:html;toolbar:false;"><div class='box'>
<div class='tooltip'> Afficher l'info-bulle au survol de la souris
<div class='tooltiptext'>
Wow, c'est génial, c'est un texte d'info-bulle épique
</div>
</div>
</div></pre>
</p>
<p>EDIT : l'important est que le survol fonctionne sur l'élément, pas sur la boîte dans laquelle il se trouve. </p>
Une façon de procéder consiste à créer un pseudo-élément
::before
placé au-dessus et à côté du texte survolé.Il existe de nombreuses façons de procéder, mais si vous souhaitez simplement que l'info-bulle soit visible à l'extérieur du conteneur, vous n'avez pas besoin d'utiliser
z-index
或overflow
. Il vous suffit de déplacer l'info-bulle dans un contexte de positionnement à l'intérieur du conteneur relatif.Selon votre commentaire, puisque vous souhaitez que l'info-bulle n'apparaisse que lorsque vous survolez le texte, je vous recommande que votre conteneur relatif enveloppe exactement ce que vous souhaitez survoler. Pour illustrer cela, j'ai ajouté une bordure au cadre extérieur, par rapport à l'endroit où vous décidez d'utiliser un conteneur relatif.
Ensuite, positionnez simplement
box:hover
更改为relative-container:hover
sur le bon élément.J'ai essayé d'organiser le HTML et les noms de classe pour qu'ils soient plus sémantiques et concis à des fins d'illustration. J'espère que cela t'aides!
Exemple