130 votes

La popover de bootstrap n'apparaît pas en haut de tous les éléments

Je travaille sur un site bootstrap et après la mise à jour de la version 2.0 à bootstrap 2.2, tout a fonctionné sauf le popover.

Les popovers s'affichent toujours bien, mais ils ne s'affichent pas au-dessus de tous les autres éléments.

<div> // this sits on top of the popover. this did not happen before cleaning up scripts.
     <div>  //popover shows on top of this
          <div> //popover shows on top of this
               //link here with popover in it.
          </div>
     </div>
</div>

Quelqu'un a-t-il une idée de la raison pour laquelle le comportement du popover a changé, ou comment je peux y remédier ? Merci.

0 votes

J'ai trouvé ma solution avec ce script. stackoverflow.com/a/64905483/6128573

373voto

user1308743 Points 3433

J'ai pu résoudre le problème en mettant data-container="body" sur l'élément html

HTML exemple :

<a href="#" data-toggle="tooltip" data-container="body" title="first tooltip">
    hover over me
</a>

JavaScript exemple :

$('your element').tooltip({ container: 'body' }) 

Découvert à partir de ce lien : https://github.com/twitter/bootstrap/issues/5889

18 votes

Cela m'a vraiment aidé. J'ai apporté la modification suivante à l'initialisation du popover et cela a fonctionné : $('#element').popover({contenu : 'body', //autres paramètres }) ;

0 votes

J'ai obtenu un 404 pour ce lien. Une mise à jour, s'il vous plaît ?

3 votes

@NoBrainer Je n'ai pas trouvé de nouveau lien, mais l'ajout de data-container="body" à l'élément html devrait fonctionner, ou le passage de container : 'body' en javascript devrait également fonctionner.

26voto

Dologan Points 541

Je viens d'avoir une situation similaire à celle-ci, impliquant la bibliothèque DataTables JQuery avec le défilement activé.

Ce qui s'est avéré n'avait rien à voir avec les indices Z, mais avec l'une des divisions englobantes dont la propriété CSS overflow était définie comme cachée.

J'ai résolu le problème en ajoutant un événement à mon élément déclenchant le popover, ce qui a également changé la propriété overflow de la div responsable en visible.

1 votes

Vous êtes un sauveur de vie ! Toutes les réponses que j'ai lues concernaient le z-index et, pour être honnête, c'était la seule chose qui avait du sens pour moi, mais à la fin, aucune des suggestions ne fonctionnait jusqu'à ce que je décide d'essayer votre réponse sans rapport avec le z-index ! Merci

17voto

Sherbrow Points 11011

La cause la plus probable est que le contenu qui s'affiche au-dessus du popover a une valeur plus élevée. z-index . Sans le code/style précis, je peux proposer deux options :

Vous devriez essayer de localiser les éléments exacts à l'aide d'un inspecteur Web (généralement F12 dans votre navigateur préféré) et vérifier leur état réel. z-index .

Si vous trouvez cette valeur, vous pouvez la définir plus bas que le popover qui est z-index: 1010; par défaut


Ou bien l'autre approche, moins bonne, serait d'augmenter la z-index du popover. Vous pouvez le faire soit avec l'option @zindexPopover dans les fichiers Less ou directement en surchargeant les fichiers

.popover {
    z-index: 1010; /* A value higher than 1010 that solves the problem */
}

Si vous ne trouvez pas de solution, vous devriez essayer de reproduire le bogue dans quelque chose comme ce jsfiddle - vous résoudrez probablement le problème tout en essayant d'obtenir le bug.

0 votes

J'essaierai de faire un jsfiddle et de le poster si je ne le trouve pas, mais j'ai essayé de donner au popover un z-index de 9999 sans succès.

1 votes

Merci de m'avoir signalé la valeur z-index par défaut du popover.

12voto

user2701303 Points 1

J'ai eu un problème similaire avec 2 éléments fixes - même si l'héritier z-index était correct, l'infobulle du bootstrap était cachée derrière l'élément ayant un z-index inférieur.

Ajout de data-container="body" a résolu le problème et fonctionne maintenant comme prévu.

-1voto

Scott Simpson Points 1689

Cela pourrait avoir un rapport avec la liste maîtresse des z-index dans variables.less. En général, assurez-vous que votre fichier variables.less est correct et à jour.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X