Saya telah menggunakan kode untuk modal saya langsung dari contoh Bootstrap, dan hanya menyertakan bootstrap.js (dan bukan bootstrap-modal.js). Namun, modal saya muncul di bawah abu-abu pudar (latar belakang) dan tidak dapat diedit.
Begini tampilannya:
Lihat biola ini untuk satu cara mereproduksi masalah ini. Struktur dasar dari kode itu adalah seperti ini:
<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;
}
Adakah ide mengapa ini atau apa yang dapat saya lakukan untuk memperbaikinya?
javascript
css
twitter-bootstrap
modal-dialog
natlines
sumber
sumber
overflow-x: hidden
diterapkan pada wadah modal.Jawaban:
Jika wadah modal memiliki posisi tetap atau relatif atau berada dalam elemen dengan posisi tetap atau relatif perilaku ini akan terjadi.
Pastikan wadah modal dan semua elemen induknya diposisikan sebagai cara default untuk memperbaiki masalah.
Berikut adalah beberapa cara untuk melakukan ini:
</body>
.position:
properti CSS dari modal dan leluhurnya hingga masalahnya hilang. Namun, ini dapat mengubah tampilan dan fungsi halaman.sumber
</body>
dan tidakbody
memilikiposition
attrib gaya. Ada ide lain?Masalahnya berkaitan dengan posisi wadah induk. Anda dapat dengan mudah "memindahkan" modal Anda keluar dari wadah ini sebelum menampilkannya. Inilah cara melakukannya jika Anda
show
menggunakan modal Anda menggunakan js:Atau, jika Anda meluncurkan modal menggunakan tombol, jatuhkan
.modal('show');
dan lakukan:Ini akan menjaga semua fungsi normal, memungkinkan Anda untuk menunjukkan modal menggunakan tombol.
sumber
$('.modal-dialog').parent().on('show.bs.modal', function(e){ $(e.relatedTarget.attributes['data-target'].value).appendTo('body'); })
Saya mencoba semua opsi yang disediakan di atas tetapi tidak membuatnya bekerja menggunakan itu.
Apa yang berhasil: mengatur z-index dari .modal-backdrop ke -1.
sumber
z-index: 0;
-1
akan menyebabkannya muncul di belakang elemen lain pada halaman seperti panel. Tetapi pengaturan untuk3
membuatnya di atas segalanya kecuali modal popup.Juga, pastikan bahwa versi BootStrap css dan js adalah versi yang sama. Versi berbeda juga dapat membuat modal muncul di bawah latar belakang:
Sebagai contoh:
Buruk:
Baik:
sumber
Saya juga mengalami masalah ini dan tidak ada solusi yang bekerja untuk saya sampai saya tahu saya sebenarnya tidak membutuhkan latar belakang. Anda dapat dengan mudah menghapus latar belakang dengan kode berikut.
Catatan :
data-backdrop
atribut harus diatur kefalse
( opsi lain :static
atautrue
).sumber
Saya mulai bekerja dengan memberikan nilai indeks-z tinggi ke jendela modal SETELAH membukanya. Misalnya:
sumber
Solusi yang disediakan oleh @Muhd adalah cara terbaik untuk melakukannya. Tetapi jika Anda terjebak dalam situasi di mana perubahan struktur halaman bukanlah suatu pilihan, gunakan trik ini:
Trik di sini adalah
data-backdrop="false" style="background-color: rgba(0, 0, 0, 0.5);"
dengan menghapus latar belakang default dan membuat yang dummy dengan mengatur warna latar belakang dialog itu sendiri dengan beberapa alpha.Pembaruan 1: Seperti yang ditunjukkan oleh @Gustyn bahwa mengklik pada latar belakang tidak menutup dialog seperti yang diharapkan. Jadi untuk mencapai itu Anda harus menambahkan beberapa kode skrip java. Berikut adalah beberapa contoh bagaimana Anda dapat mencapai ini.
sumber
A tetapi terlambat dalam hal ini tetapi di sini adalah solusi generik -
Kunjungi tautan ini - Bootstrap 3 - modal menghilang di bawah latar belakang saat menggunakan bilah sisi tetap untuk detail.
sumber
Cara lain untuk mendekati ini adalah dengan menghapus z-index dari
.modal-backdrop
dalam bootstrap.css. Ini akan menyebabkan latar belakang berada pada level yang sama dengan bagian tubuh Anda yang lain (masih akan pudar) dan modal Anda berada di atas..modal-backdrop
terlihat seperti inisumber
Cukup tambahkan dua baris CSS:
The .modal-backdrop harus memiliki nilai 1050 untuk mengaturnya di atas navbar.
sumber
position: fixed
ini tidak akan berfungsi.Ini akan mencakup semua modals tanpa mengacaukan salah satu animasi atau perilaku yang diharapkan ..
sumber
Saya hanya mengatur:
dan itu berhasil ....
Untuk pertanyaan awal:
sumber
Gunakan ini di modal Anda:
sumber
Masalah ini sering dapat dialami ketika menggunakan hal-hal seperti gradien di CSS untuk hal-hal seperti latar belakang atau bahkan header akordeon.
Sayangnya, memodifikasi atau mengesampingkan inti Bootstrap CSS tidak diinginkan, dan dapat menyebabkan efek samping yang tidak diinginkan. Pendekatan yang paling tidak mengganggu adalah menambahkan
data-backdrop="false"
tetapi Anda mungkin memperhatikan bahwa efek fade tidak lagi berfungsi seperti yang diharapkan.Setelah mengikuti rilis terbaru dari Bootstrap, versi 3.3.5 tampaknya menyelesaikan masalah ini tanpa efek samping yang tidak diinginkan.
Unduh: https://github.com/twbs/bootstrap/releases/download/v3.3.5/bootstrap-3.3.5-dist.zip
Pastikan untuk memasukkan file CSS dan file JavaScript dari 3.3.5.
sumber
Hai Saya punya masalah yang sama maka saya menyadari bahwa ketika Anda menggunakan bootsrap 3.1 Tidak seperti di bootsrap versi lama (2.3.2) struktur html dari modal telah diubah!
Anda harus membungkus tubuh header dan footer modal Anda dengan modal-dialog dan modal-konten
sumber
tidak ada solusi yang disarankan di atas bekerja untuk saya tetapi teknik ini menyelesaikan masalah:
sumber
Saya punya masalah ini dan cara termudah untuk memperbaikinya adalah addind z-index lebih besar dari 1040 pada modal-dialog div:
Saya percaya bootstrap membuat div modal-backdrop fade di mana dalam kasus saya memiliki indeks-z 1040, jadi jika Anda menempatkan modal-dialog di atas ini, seharusnya tidak menjadi abu-abu lagi.
sumber
Saya punya solusi yang lebih ringan dan lebih baik ..
Itu bisa dengan mudah diselesaikan melalui beberapa gaya CSS tambahan ..
sembunyikan kelas
.modal-backdrop
(dihasilkan secara otomatis dari Bootstrap.js)mengatur latar belakang
.modal
ke gambar latar belakang hitam transparan.Ini akan bekerja paling baik jika Anda memiliki persyaratan yang memerlukan modal untuk berada di dalam elemen dan tidak di dekat
</body>
tag.sumber
atur z-index .modal ke nilai tertinggi
Misalnya, .sidebarwrapper memiliki z-index 1100, jadi atur z-index .modal ke 1101
sumber
Dalam kasus saya menyelesaikannya, tambahkan ini di stylesheet saya:
dengan google debugger, dapat memeriksa elemen BACKDROP Dan memodifikasi atribut. Keberuntungan goog.
sumber
dalam
navbar-fixed-top
kebutuhan navbar Andaz-index = 1041
dan juga jika Anda menggunakanbootstarp-combined.min.css
perubahan juga.navbar-fixed-top, .navbar-fixed-bottom
z-index to 1041
sumber
Ubah posisi absolut menjadi relatif.
sumber
Anda juga dapat menghapus indeks-z dari .modal-backdrop. Css yang dihasilkan akan terlihat seperti ini.
sumber
Saya menghapus latar belakang modal.
Ini bukan solusi yang lebih baik, tetapi bekerja untuk saya.
sumber
yang saya temukan adalah:
di bootstrap 3.3.0 itu tidak benar, tetapi ketika di bootstrap 3.3.5 itu right.let lihat kode 3.3.0:
3.3.5
sumber
Tambahkan yang ini ke halaman Anda. Ini bekerja untuk saya.
sumber
Saya memperbaikinya dengan menambahkan gaya di bawah ini ke tag DIV
Dan tambahkan custom css
sumber
sumber
Bagi saya solusi termudah adalah memasukkan modal saya ke dalam pembungkus dengan posisi absolut dan indeks-z lebih tinggi dari .modal-backdrop. Karena modal-backdrop (setidaknya dalam kasus saya) memiliki z-index 1050:
sumber
Dalam kasus saya, saya memiliki bungkus dengan yang berikut:
Hanya menghapus z-index: 1 dan tidak tahu mengapa memperbaiki masalah. juga pasti menghapus posisi relatif lakukan tetapi saya membutuhkannya.
sumber