Saya mendesain halaman menggunakan Bootstrap 3. Saya mencoba menggunakan popover dengan placement: right
pada elemen input. Bootstrap baru memastikan bahwa jika Anda menggunakan form-control
Anda pada dasarnya memiliki elemen input lebar penuh.
Kode HTML terlihat seperti ini:
<div class="row">
<div class="col-md-6">
<label for="name">Name:</label>
<input id="name" class="form-control" type="text"
data-toggle="popover" data-trigger="hover"
data-content="My popover content.My popover content.My popover content.My popover content." />
</div>
</div>
Lebar popover terlalu rendah, menurut saya karena tidak ada lebar yang tersisa di div. Saya ingin formulir input di sisi kiri, dan popover lebar di sisi kanan.
Sebagian besar, saya mencari solusi di mana saya tidak perlu mengganti Bootstrap.
JsFiddle terlampir. Opsi input kedua. Belum sering menggunakan jsfiddle jadi tidak tahu, tetapi cobalah meningkatkan ukuran kotak output untuk melihat hasilnya, pada layar yang lebih kecil bahkan tidak akan melihatnya. http://jsfiddle.net/Rqx8T/
sumber
$('[data-toggle="popover"]').popover({ container: 'body' });
!important
data-container="body"
pada elemencontainer: "body"
.Saya juga membutuhkan popover yang lebih luas untuk bidang teks pencarian. Saya datang dengan solusi Javascript ini (di sini di Coffee ):
Penanganannya ada di baris terakhir. Sebelum popover ditampilkan, opsi max-width diatur ke nilai kustom. Anda juga bisa menambahkan kelas khusus ke elemen tip.
sumber
.on("show.bs.popover", function(){ $(this).data("bs.popover").tip().css("max-width", "600px"); });
max-width
. Terima kasih atas solusi ini! Btw bukannya"600px"
, saya atur ke"none"
. Itu lebih baik untukku.Saya memiliki masalah yang sama. Habiskan waktu mencari jawaban dan temukan solusi saya sendiri: Tambahkan teks berikut di kepala:
sumber
Untuk mengubah lebar, Anda dapat menggunakan css
Untuk ukuran yang diinginkan tetap
Untuk lebar maks yang diinginkan:
jsfiddle : http://jsfiddle.net/Rqx8T/2/
sumber
Untuk mengubah lebar popover, Anda dapat mengganti template:
sumber
max-width: 500px
gaya juga.Untuk orang yang lebih suka solusi JavaScript. Di Bootstrap 4 tip () menjadi getTipElement () dan mengembalikan objek no jQuery. Jadi untuk mengubah lebar popover di Bootstrap 4 Anda dapat menggunakan:
sumber
width
tidakmax-width
Pada dasarnya saya meletakkan kode popover di baris div, bukan input div. Memecahkan masalah.
sumber
Dengan bantuan apa yang telah dijelaskan oleh @EML di atas tentang popover pada modal windows dan juga kode yang ditunjukkan oleh @ 2called-chaos, ini adalah bagaimana saya memecahkan masalah.
Saya memiliki ikon pada modal yang ketika diklik harus muncul
HTML saya
Skrip saya
sumber
Tidak ada solusi akhir di sini: / Hanya beberapa pemikiran bagaimana "bersih" menyelesaikan masalah ini ...
Versi terbaru (jQuery 1.11 + Bootstrap 3.1.1 + class = "col-xs-" bukan class = "col-md-") dari JSFiddle asli Anda: http://jsfiddle.net/tkrotoff/N99h7/
Sekarang JSFiddle yang sama dengan solusi yang Anda usulkan : http://jsfiddle.net/tkrotoff/N99h7/8/
Tidak berfungsi: popover diposisikan relatif terhadap tanda
<div class="col-*">
+ bayangkan Anda memiliki beberapa input untuk<div class="col-*">
...Jadi jika kita ingin menjaga popover pada input (semantik lebih baik):
.popover { position: fixed; }
: tapi kemudian setiap kali Anda menggulir halaman, popover tidak akan mengikuti gulir.popover { width: 100%; }
: tidak terlalu bagus karena Anda masih bergantung pada lebar induk (mis<div class="col-*">
.popover-content { white-space: nowrap; }
: bagus hanya jika teks di dalam popover lebih pendek darimax-width
Lihat http://jsfiddle.net/tkrotoff/N99h7/11/
Mungkin, menggunakan browser yang sangat baru, nilai lebar CSS baru dapat menyelesaikan masalah, saya tidak mencoba.
sumber
container: 'body'
biasanya melakukan trik (lihat jawaban JustAnil di atas), tetapi ada masalah jika popover Anda berada dalam modal. Thez-index
tempat itu balik modal ketika popover yang melekatbody
. Ini tampaknya terkait dengan masalah BS2 5014 , tapi saya mendapatkannya di 3.1.1. Anda tidak dimaksudkan untuk menggunakancontainer
daribody
, tetapi jika Anda memperbaiki kode untukmaka Anda memperbaiki
z-index
masalahnya, tetapi lebar popover masih salah.Satu-satunya perbaikan yang dapat saya temukan adalah menggunakan
container: 'body'
dan menambahkan beberapa css tambahan:Perhatikan bahwa solusi css sendiri tidak akan berfungsi.
sumber
tooltip-append-to-body
, itu muncul di belakang modal dan modal 'abu-abu' latar belakang.Anda dapat menggunakan atribut data-container = "body" dalam popover
sumber
Inilah cara non-kopi untuk melakukannya dengan mengarahkan kursor:
sumber
Satu solusi teruji untuk Bootstrap 4 beta:
Bersama dengan pernyataan jQuery:
Catatan samping,
data-container="body"
ataucontainer: "body"
dalam HTML atau sebagaioption
kepopover({})
objek tidak benar-benar melakukan trik [mungkin melakukan pekerjaan tetapi hanya bersama-sama dengan pernyataan CSS];Juga, ingat bahwa Bootstrap 4 beta mengandalkan popper.js untuk posisi popover dan tooltipnya (sebelum itu tether.js)
sumber
Anda dapat menyesuaikan lebar popover dengan metode yang ditunjukkan di atas, tetapi hal terbaik yang harus dilakukan adalah menentukan lebar konten sebelum Bootstrap melihatnya dan melakukan perhitungannya. Misalnya, saya punya meja, saya mendefinisikan lebarnya, lalu bootstrap membuat popover yang sesuai. (Terkadang Bootstrap kesulitan menentukan lebar, dan Anda harus masuk dan memegang tangannya)
sumber
Saya menggunakan ini (berfungsi dengan baik):
sumber
Saya berakhir dengan mengatur lebar div "popover-content" ke nomor yang saya inginkan. (id atau kelas lain tidak akan berfungsi .....) Semoga Sukses!
sumber
Anda juga dapat menambahkan data-container = "body" yang harus melakukan pekerjaan:
sumber
Anda dapat mengubah template popover Anda. Baik dengan
data-template
-atribut atau dengan bagian yang relevan di fungsi yang mengaturnya:sumber
Untuk komponen naskah:
sumber
Di Angular
ng-bootstrap
Anda bisa dengan mudahcontainer="body"
ke kontrol yang memicu popover (seperti tombol atau kotak teks). Kemudian dalam file gaya global Anda (style.css
ataustyle.scss
) file yang harus Anda tambahkan.popover { max-width: 100% !important; }
. Setelah itu, konten popover akan secara otomatis diatur ke lebar kontennya.sumber
Dalam bootstrap 4 Anda cukup mengganti nilai default variabel bootstrap
$popover-max-width
di file styles.scss Anda seperti:Lebih lanjut tentang mengganti bootstrap 4 default https://getbootstrap.com/docs/4.0/getting-started/theming/#variable-defaults
sumber
Pada Bootstrap 4, Anda dapat dengan mudah meninjau opsi templat, dengan menimpa lebar maks:
Ini adalah solusi yang baik jika Anda memiliki beberapa popover di halaman.
sumber
Coba ini:
sumber
$('.popover').css('width', popover_size + 'px');
Karena popover_size diuraikan sebagai integer. Hal lain adalah bahwa:popover_size = ((parseInt(string[0])+350));
Akan menambah lebar ekstra.