Bootstrap modal apparaissant sous arrière-plan
J'ai utilisé le code de mon modal directement à partir du Bootstrap exemple, et ont compris que la bootstrap.js (et pas bootstrap-modal.js). Cependant, mon modal est apparaissant sous le gris fade (fond) et est non modifiable.
Voici à quoi il ressemble:
Voir ce violon pour un façon à reproduire ce problème. La structure de base d'un code comme ceci:
<body>
<p>Lorem ipsum dolor sit amet.</p>
<div class="my-module">
This container contains the modal code.
<div class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">Modal</div>
</div>
</div>
</div>
</div>
</body>
body {
padding-top: 50px;
}
.my-module {
position: fixed;
top: 0;
left: 0;
}
Toutes les idées de pourquoi il en est ou ce que je peux faire pour résoudre ce problème?
- Dans le cas où quelqu'un d'autre recherches pour un certain temps pour ouvrir des balises, etc. essayer de comprendre pourquoi ce qui se passe, pour moi c'était le Feedly extension chrome qui a cassé mon auxiliaires modaux. La désactivation de l'extension retournée comportement normal.
- En mai cas, le problème était sur iOS et causés par
overflow-x: hidden
apposée sur le contenant de la modale. - Créé 3 exemples dans 3 versions. 3.3.1 fonctionne bien et que les autres n'ont pas. la Version 3.3.1 jsfiddle la Version 3.3.5 jsfiddle Version 3.3.6 jsfoddle
- Créé un rapport de bug avec Bootstrap de l'équipe semble que ce n'est pas vraiment un bug même de la pensée, il a bien fonctionné dans 3.3.1. Vous pouvez en lire plus à ce sujet dans le lien que j'ai posté.
- Un blog de pertinence à toute personne confrontée à ce problème weblog.west-wind.com/posts/2016/Sep/14/...
- Peut-être que ça aide quelqu'un dans le futur. Dans mon cas, la question était de séparer les Js et CSS de la version.
Vous devez vous connecter pour publier un commentaire.
Si le modal conteneur a un fixe ou de la position relative ou au sein d'un élément fixe ou par rapport à la position de ce problème va se produire.
Assurez-vous que le modal conteneur et tous ses éléments parents sont positionnés par défaut façon de résoudre le problème.
Ici sont un couple de façons de le faire:
</body>
.position:
propriétés CSS à partir du modal et de ses ancêtres jusqu'à ce que le problème disparaît. Cela pourrait changer l'apparence de la page et les fonctions, cependant.</body>
etbody
se complique pas toutposition
style attrib. Une autre idée?-webkit-overflow-scrolling: touch;
avecoverflow-y: scroll
pour un défilement fluide sur iOS a été la cause. Retrait il aurait fait le tour, mais j'ai choisi l'option 1 à la place.position: absolute
. Si je supprime que cela fonctionne. Malheureusement je ne peux pas déplacer l'élément d'ailleurs, parce que c'est rendu dynamique par un composant.<section></section>
tag. position: relative serait ajoutée et il va en sont la cause. dans mon cas, j'ai enlevé le enveloppés<section></section>
et tout a fonctionné comme prévuz-index
) sur cet élément. Donc, au lieu de supprimerposition:
j'ai dû enlever lez-index:
et redessiner les pièces qui en dépendent (simplement en les plaçant à l'intérieur d'un intérieur DIV).Le problème a à voir avec le positionnement de conteneurs parent. Vous pouvez facilement le "move" de votre modale de ces contenants avant de les afficher. Voici comment faire si vous avez été
show
ing votre modale à l'aide de js:Ou, si vous lancez modale à l'aide de boutons, baisse de la
.modal('show');
et il suffit de faire:Cela permet de garder toutes les fonctionnalités normales, vous permettant d'afficher la modale à l'aide d'un bouton.
$('.modal-dialog').parent().on('show.bs.modal', function(e){ $(e.relatedTarget.attributes['data-target'].value).appendTo('body'); })
J'ai essayé toutes les options fournies ci-dessus, mais ne pas le faire fonctionner à l'aide de ceux-ci.
Ce n'travail: réglage de la z-index de l' .modale de toile de fond à -1.
z-index: 0;
bootstrap.css
fichier!-1
serait la cause de comparaître derrière d'autres éléments sur la page, telles que des panneaux. Mais la mise à3
fait au-dessus de tout, sauf de l'modal popup.Aussi, assurez-vous que la version de BootStrap css et js sont les mêmes. Différentes versions peuvent également faire modal apparaissant sous arrière-plan:
Par exemple:
Mauvais:
Bon:
J'ai également rencontré ce problème et aucune des solutions n'a fonctionné pour moi jusqu'à ce que j'ai compris en fait, je ne pas besoin d'une toile de fond. Vous pouvez facilement retirer la toile de fond avec le code suivant.
Note: le
data-backdrop
attribut doit être défini àfalse
(d'autres options:static
outrue
).Je l'ai eu à travailler en donnant un grand z-index de la valeur de la fenêtre modale APRÈS de l'ouvrir. E. g.:
Fournies par la Solution de @Muhd est la meilleure façon de le faire. Mais si vous êtes coincé dans une situation où l'évolution de la structure de la page n'est pas une option, utilisez cette astuce:
L'astuce ici est
data-backdrop="false" style="background-color: rgba(0, 0, 0, 0.5);"
en supprimant le défaut de toile de fond et de créer un mannequin, un par réglage de la couleur d'arrière-plan de la boîte de dialogue elle-même avec quelques alpha.Mise à jour 1:
Comme l'a souligné @Gustyn qu'en cliquant sur l'arrière-plan n'est pas de fermer la boîte de dialogue comme c'est prévu. Donc, pour réaliser que vous avez à ajouter un peu de code java script. Voici quelques exemples de comment vous pouvez atteindre cet objectif.
Un mais en retard sur ce sujet, mais voici une solution générique -
Visitez ce lien - Bootstrap 3 - modale en train de disparaître au-dessous de toile de fond lors de l'utilisation d'une barre latérale fixe pour plus de détails.
Une autre manière d'aborder cette question consiste à enlever le z-index à partir de la
.modal-backdrop
dans le bootstrap.css. Ce sera la cause de la toile de fond pour être au même niveau que le reste de votre corps (il sera toujours fade) et votre modal pour être au top..modal-backdrop
ressemble à ceciJuste ajouter deux lignes de CSS:
L' .modal-toile de fond doit avoir 1050 valeur pour le poser sur la barre de navigation.
position: fixed
cela ne fonctionnera pas.J'ai tout simplement mis:
et ça fonctionne....
Pour la question d'origine:
Ce problème peut souvent être connu lors de l'utilisation de choses comme les dégradés en CSS pour des choses comme les décors ou même de l'accordéon en-têtes.
Malheureusement, la modification ou la suppression de base de Bootstrap CSS n'est pas souhaitable, et peut conduire à des effets secondaires indésirables. La moins intrusive approche consiste à ajouter
data-backdrop="false"
mais vous remarquerez peut-être que l'effet de fondu ne fonctionne plus comme prévu.Après les dernières versions de Bootstrap, version 3.3.5 semble résoudre ce problème avec aucun des effets secondaires indésirables.
Télécharger: https://github.com/twbs/bootstrap/releases/download/v3.3.5/bootstrap-3.3.5-dist.zip
Assurez-vous d'inclure les fichiers CSS et JavaScript des fichiers à partir 3.3.5.
Salut j'ai eu le même problème, puis je me rends compte que lorsque vous utilisez bootsrap 3.1
Contrairement à des versions plus anciennes de bootsrap (2.3.2)
la structure html de la modale a été changé!
, vous devez emballer votre modal corps d'en-tête et pied de page avec modale de dialogue et de modal-content
J'ai eu ce problème et de la façon la plus simple pour résoudre ce fut addind z-index supérieur à 1040 sur la modale de dialogue div:
Je crois bootstrap créer un div modal-toile de fond, un fondu qui dans mon cas a le z-index, 1040, donc si Vous mettez la modale de dialogue sur le dessus de cela, il ne devrait pas être gris plus.
L'utiliser dans vos modal:
aucune des solutions proposées ci-dessus a fonctionné pour moi, mais cette technique a résolu le problème:
définir le z-index .modal à une valeur plus grande
Par exemple,
.sidebarwrapper a z-index de 1100, avec le z-index de .modal 1101
J'ai un briquet et une meilleure solution..
Il pourrait être facilement résoudre par le biais de certains autres styles CSS..
cacher la classe
.modal-backdrop
(auto-générée à partir de Bootstrap.js)définir l'arrière-plan de
.modal
à un translucide fond noir de l'image.Cela fonctionne mieux si vous avez une exigence de la modale d'être à l'intérieur d'un élément, et pas près de la
</body>
tag..Dans mon cas le résoudre, ajouter ceci dans ma feuille de style:
CSS:
avec google débogueur, peut examiner l'élément de FOND Et de modifier les attributs. Goog luck.
Ce serait de couvrir tous les auxiliaires modaux sans perturber le fonctionnement de l'un quelconque des animations ou comportement attendu..
dans votre barre de navigation
navbar-fixed-top
besoinz-index = 1041
et aussi, si u utilisation
bootstarp-combined.min.css
également le changement.navbar-fixed-top, .navbar-fixed-bottom
z-index to 1041
Changer la position absolue relative.
Vous pouvez également supprimer le z-index .modal-toile de fond. Résultant css devrait ressembler à ceci.
J'ai enlevé modal toile de fond.
Ce n'est pas la meilleure solution, mais fonctionne pour moi.
ce que je trouve est que:
dans le bootstrap 3.3.0 il n'est pas juste,mais quand dans le bootstrap 3.3.5 c'est bon.nous allons voir le code.
3.3.0:
3.3.5
J'ai été corrigé par l'ajout de style ci-dessous pour balise DIV
Et ajouter css personnalisé
Dans mon cas, j'ai eu un wrapper avec les éléments suivants:
Seulement enlevé le z-index:1, et n'ai aucune idée pourquoi le problème a été résolu. aussi pour assurer retrait de la position relative d'un fait, mais j'en avais besoin.
Dans mon cas, la cause était de bootstrap.min.css 🙂 une fois que j'ai exclu la forme de mon fichier html comme une référence, le dialogue a montré dans forn de la modale de l'ombre 🙂
D'ajouter celui-ci à vous pages.
Il fonctionne pour moi.
Cela a fonctionné pour moi:
Pour moi la solution la plus simple était de mettre mon modale dans une enveloppe avec une position absolue et z-index plus élevé que .modal-toile de fond. Depuis modal-toile de fond (au moins dans mon cas) a z-index 1050:
CSS:
HTML:
essayer d'écraser la classe .modal-ouvert de dépassement de la valeur de caché visible.
Essayer https://github.com/nakupanda/bootstrap3-dialog/releases/tag/v1.34.0
Modal Bootstrap 3.3.0 génère la modale de toile de fond à l'intérieur de l'élément principal, alors que, précédemment, il est ajouté à l'élément de corps.
Espère que cette aide.
Ce comportement se produit parfois lorsqu'il y a une balise non fermée, plus particulièrement un unclosed
</div>
. Vous pouvez revoir l'endroit où votre modal est situé et s'assurer que toutes les balises sont bien fermées ou mieux encore déplacer le div modal plus près du bas de la page, imediately avant</body>
tag boîtierComme Davide Lorigliola, je l'ai fixée par manivelle jusqu'à la z-index:
.modal-toile de fond { z-index: -999999; }
Malheureusement S. O. m'interdit de commenter ou de vote sur sa, donc je suis obligé de le dire ici-bas dans encore une autre solution.
J'ai eu le même problème et également de vérifier Muhd de réponse.
Mais, mon modal besoins à gauche, en haut de l'attribut, il suffit donc de changer de position fixe à l'absolu et cela a fonctionné.
Vous pouvez faire une solution de contournement, mais cela permettra d'éliminer l'évanouissement de toute la page. le modal popup comme fb popups.
Après l'ouverture de l'modal essayer
J'ai eu un problème de ce genre sur Iphone et Ipad à l'aide de Sharepoint 2013
Modal bootstrap garder z-index de problèmes avec en toile de fond.
Je viens de l'utiliser sur JS :
JS:
Selon les réponses précédentes cela peut se produire pour plusieurs raisons
pour moi le problème était de référencement de deux Bootstrap liens sans le savoir, afin de supprimer l'un d'eux permet de résoudre le problème.
dans mon cas, j'ai compris ceci:
et un autre en mode hors connexion que j'ai déjà dans mon ordinateur portable.
J'ai simplement supprimé la position: fixed style de la _modal.scss fichier et il semble bien fonctionner pour moi. J'ai toujours le fond et qu'il fonctionne comme prévu.
Bravo à Rick Strahl, pour les conseils: https://weblog.west-wind.com/posts/2016/Sep/14/Bootstrap-Modal-Dialog-showing-under-Modal-Background
Essayer ce code CSS.
Ex:
JS:
CSS:
HTML:
J'ai eu le même problème que pour les appareils iOS.
Solution a été par la suppression de
-webkit-overflow-scrolling: touch
du parent élémentJ'ai trouvé que par l'ajout d'une ligne de style de la balise pour définir "display: none" empêché ce problème. La position du code n'a eu aucun effet.
PRUDENT LORS DE L'AJOUT AU CORPS!
Ce sera certainement obtenir ce modal de derrière la toile de fond:
Cependant, ce qui ajoute un autre modal pour le corps à chaque fois que vous l'ouvrez, ce qui peut provoquer des maux de tête lors de l'ajout de contrôles comme gridviews avec les modifications et les mises à jour dans la mise à jour des panneaux à l'modal. Par conséquent, vous pouvez envisager de l'enlever lorsque le modal ferme:
Par exemple:
va supprimer l'ajout modal. (bien sûr c'est un exemple, et vous pourriez vouloir utiliser un autre nom de classe que vous avez ajouté à l'modal).
Et comme déjà dit par d'autres, vous pouvez simplement désactiver l'arrière-drop du modal (données-toile de fond="false"), ou si vous ne pouvez pas vivre sans l'obscurcissement de l'écran vous pouvez régler l' .modal-toile de fond de classe css (soit en augmentant le z-index).
Supprimer modal-toile de fond qui est noir dans votre bootstrap CSS
Voir la mienne:
puis ajoutez le fond de la couleur et de l'opacité de l'o.5. voir la mienne:
}
REMARQUE: Bien que ces changements ont été faits dans le css de bootstrap, j'ai utilisé angulaires-sangle et je n'ai pas télécharger ou utiliser le ng-animer css
Ajouter à votre feuille de style: