Eu usei o código do meu modal diretamente no exemplo do Bootstrap e incluí apenas o bootstrap.js (e não o bootstrap-modal.js). No entanto, meu modal está aparecendo sob o desbotamento cinza (pano de fundo) e não é editável.
Aqui está o que parece:
Veja este violino para uma maneira de reproduzir esse problema. A estrutura básica desse código é assim:
<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;
}
Alguma idéia de por que isso é ou o que posso fazer para corrigir isso?
javascript
css
twitter-bootstrap
modal-dialog
natlines
fonte
fonte
overflow-x: hidden
aplicado ao contêiner do modal.Respostas:
Se o contêiner modal tiver uma posição fixa ou relativa ou estiver dentro de um elemento com posição fixa ou relativa, esse comportamento ocorrerá.
Verifique se o contêiner modal e todos os seus elementos pai estão posicionados da maneira padrão para corrigir o problema.
Aqui estão algumas maneiras de fazer isso:
</body>
.position:
propriedades CSS do modal e de seus ancestrais até que o problema desapareça. No entanto, isso pode mudar a aparência e o funcionamento da página.fonte
</body>
ebody
não tem nenhumposition
atributo de estilo. Alguma outra ideia?O problema tem a ver com o posicionamento dos contêineres pai. Você pode "mover" facilmente seu modal desses contêineres antes de exibi-lo. Aqui está como fazer isso se você estivesse
show
usando seu modal usando js:Ou, se você iniciar o modal usando os botões, solte o
.modal('show');
e faça:Isso manterá toda a funcionalidade normal, permitindo que você mostre o modal usando um botão.
fonte
$('.modal-dialog').parent().on('show.bs.modal', function(e){ $(e.relatedTarget.attributes['data-target'].value).appendTo('body'); })
Eu tentei todas as opções fornecidas acima, mas não consegui usá-las.
O que funcionou: definindo o índice z do .modal-backdrop como -1.
fonte
z-index: 0;
-1
fazer com que apareça atrás de outros elementos na página, como painéis. Mas configurá-lo para3
torná-lo acima de tudo, exceto o pop-up modal.Além disso, verifique se a versão do BootStrap css e js são as mesmas. Versões diferentes também podem fazer com que o modal apareça em segundo plano:
Por exemplo:
Ruim:
Boa:
fonte
Eu também encontrei esse problema e nenhuma das soluções funcionou para mim até que eu descobri que realmente não preciso de um pano de fundo. Você pode remover facilmente o pano de fundo com o código a seguir.
Nota : o
data-backdrop
atributo precisa ser definido comofalse
( outras opções :static
outrue
).fonte
Consegui fazê-lo, atribuindo um alto valor de índice-z à janela modal APÓS abri-la. Por exemplo:
fonte
A solução fornecida pela @Muhd é a melhor maneira de fazê-lo. Mas se você estiver preso em uma situação em que alterar a estrutura da página não é uma opção, use este truque:
O truque aqui é
data-backdrop="false" style="background-color: rgba(0, 0, 0, 0.5);"
remover o pano de fundo padrão e criar um modelo fictício, definindo a cor de fundo da caixa de diálogo com algum alfa.Atualização 1: Como apontado por @Gustyn, clicar no plano de fundo não fecha a caixa de diálogo conforme o esperado. Então, para conseguir isso, você precisa adicionar algum código de script java. Aqui está um exemplo de como você pode conseguir isso.
fonte
Um pouco tarde, mas aqui está uma solução genérica -
Visite este link - Bootstrap 3 - modal desaparecendo abaixo do pano de fundo ao usar uma barra lateral fixa para obter detalhes.
fonte
Uma outra maneira de abordar isso é remover o z-index do
.modal-backdrop
arquivo bootstrap.css. Isso fará com que o pano de fundo fique no mesmo nível do resto do seu corpo (ainda desaparecerá) e seu modal fique no topo..modal-backdrop
se parece com issofonte
Basta adicionar duas linhas de CSS:
O .modal-backdrop deve ter um valor de 1050 para configurá-lo na barra de navegação.
fonte
position: fixed
isso não funcionará.Isso cobriria todos os modais sem atrapalhar nenhuma das animações ou comportamento esperado.
fonte
Acabei de definir:
e funciona ....
Para a pergunta original:
fonte
Use isso no seu modal:
fonte
Esse problema geralmente pode ser observado ao usar coisas como gradientes no CSS para coisas como planos de fundo ou até mesmo cabeçalhos de acordeão.
Infelizmente, modificar ou substituir o CSS principal do Bootstrap é indesejável e pode levar a efeitos colaterais indesejados. A abordagem menos invasiva é adicionar
data-backdrop="false"
mas você pode perceber que o efeito de desbotamento não funciona mais como o esperado.Depois de seguir os lançamentos recentes do Bootstrap, a versão 3.3.5 parece resolver esse problema sem efeitos colaterais indesejados.
Baixar: https://github.com/twbs/bootstrap/releases/download/v3.3.5/bootstrap-3.3.5-dist.zip
Certifique-se de incluir os arquivos CSS e JavaScript da 3.3.5.
fonte
Oi Eu tive o mesmo problema, então percebo que quando você usa o bootsrap 3.1 Ao contrário das versões mais antigas do bootsrap (2.3.2), a estrutura html do modal foi alterada!
você deve agrupar o corpo e o rodapé do cabeçalho modal com diálogo modal e conteúdo modal
fonte
nenhuma das soluções sugeridas acima funcionou para mim, mas essa técnica resolveu o problema:
fonte
Eu tive esse problema e a maneira mais fácil de corrigi-lo era o índice z addind maior que 1040 na div de diálogo modal:
Acredito que o bootstrap crie um desbotamento de cenário modal div no qual, no meu caso, tenha o z-index 1040, por isso, se você colocar a caixa de diálogo modal em cima disso, ele não ficará mais cinza.
fonte
Eu tenho uma solução mais leve e melhor ..
Pode ser facilmente resolvido através de alguns estilos CSS adicionais.
ocultar a classe
.modal-backdrop
(gerada automaticamente a partir do Bootstrap.js)defina o plano de fundo
.modal
para uma imagem de fundo preto translúcido.Isso funcionará melhor se você tiver um requisito que precise que o modal esteja dentro de um elemento e não próximo à
</body>
tag.fonte
defina o .modal do z-index para um valor mais alto
Por exemplo, .sidebarwrapper possui um índice z de 1100, portanto, defina o índice z de .modal como 1101
fonte
No meu caso, resolva-o, adicione isso na minha folha de estilo:
com o depurador do google, pode examinar o elemento BACKDROP E modificar atributos. Boa sorte.
fonte
na sua barra de navegação
navbar-fixed-top
precisaz-index = 1041
e também se você usarbootstarp-combined.min.css
a alteração também.navbar-fixed-top, .navbar-fixed-bottom
z-index to 1041
fonte
Mude a posição absoluta para relativa.
fonte
Você também pode remover o z-index do .modal-backdrop. CSS resultante seria assim.
fonte
Eu removi o pano de fundo modal.
Esta não é a melhor solução, mas funciona para mim.
fonte
o que eu acho é que:
no bootstrap 3.3.0 não está certo, mas quando no bootstrap 3.3.5 está certo. vamos ver o código. 3.3.0:
3.3.5
fonte
Adicione este às suas páginas. Isso funciona para mim.
fonte
Foi corrigido isso adicionando o estilo abaixo à tag DIV
E adicione CSS personalizado
fonte
fonte
Para mim, a solução mais fácil foi colocar meu modal em um invólucro com posição absoluta e índice z maior que o .modal-backdrop. Como o modal-backdrop (pelo menos no meu caso) tem o z-index 1050:
fonte
No meu caso, eu tinha um wrapper com o seguinte:
Somente removeu o z-index: 1 e não tenho idéia do porquê do problema. também com certeza remover a posição relativa, mas eu precisava.
fonte