Estoy diseñando una página usando Bootstrap 3. Estoy tratando de usar un popover con placement: right
un elemento de entrada. El nuevo Bootstrap garantiza que, si lo usa form-control
, básicamente tenga un elemento de entrada de ancho completo.
El código HTML se parece a esto:
<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>
El ancho de popovers es demasiado bajo, en mi opinión porque no queda ningún ancho en el div. Quiero el formulario de entrada en el lado izquierdo y un amplio popover en el lado derecho.
Principalmente, estoy buscando una solución donde no tenga que anular Bootstrap.
El JsFiddle adjunto. La segunda opción de entrada. No he usado mucho jsfiddle, así que no lo sé, pero intente aumentar el tamaño del cuadro de salida para ver resultados, en pantallas más pequeñas ni siquiera lo vería. http://jsfiddle.net/Rqx8T/
fuente
$('[data-toggle="popover"]').popover({ container: 'body' });
!important
data-container="body"
en el elementocontainer: "body"
.También necesitaba un popover más amplio para un campo de texto de búsqueda. Se me ocurrió esta solución Javascript (aquí en Coffee ):
La solución está en la última línea. Antes de que se muestre el popover, la opción de ancho máximo se establece en un valor personalizado. También puede agregar una clase personalizada al elemento tip.
fuente
.on("show.bs.popover", function(){ $(this).data("bs.popover").tip().css("max-width", "600px"); });
max-width
. ¡Gracias por esta solución! Por cierto en lugar de"600px"
, lo configuré"none"
. Es mejor para mí.Yo tuve el mismo problema. Pasé bastante tiempo buscando una respuesta y encontré mi propia solución: agregue el siguiente texto a la cabeza:
fuente
Para cambiar el ancho puedes usar css
Para tamaño fijo deseado
Para ancho máximo deseado:
jsfiddle : http://jsfiddle.net/Rqx8T/2/
fuente
Para cambiar el ancho del popover, puede anular la plantilla:
fuente
max-width: 500px
estilo.Para las personas que prefieren la solución de JavaScript. En Bootstrap 4 tip () se convirtió en getTipElement () y devuelve un objeto no jQuery. Entonces, para cambiar el ancho del popover en Bootstrap 4, puede usar:
fuente
width
nomax-width
Básicamente puse el código de popover en la fila div, en lugar de la entrada div. Resuelve el problema.
fuente
Con la ayuda de lo que @EML ha descrito anteriormente con respecto a popover en ventanas modales y también el código mostrado por @ 2called-chaos, así es como resolví el problema.
Tengo un icono en el modal que, cuando se hace clic, debería aparecer la ventana emergente
Mi HTML
Mi guión
fuente
No hay una solución final aquí: / Solo algunas ideas sobre cómo resolver este problema "limpiamente" ...
Versión actualizada (jQuery 1.11 + Bootstrap 3.1.1 + class = "col-xs-" en lugar de class = "col-md-") de su JSFiddle original: http://jsfiddle.net/tkrotoff/N99h7/
Ahora el mismo JSFiddle con su solución propuesta : http://jsfiddle.net/tkrotoff/N99h7/8/
No funciona: el popover está posicionado en relación con el
<div class="col-*">
+ imagínese que tiene múltiples entradas para el mismo<div class="col-*">
...Entonces, si queremos mantener el popover en las entradas (semánticamente mejor):
.popover { position: fixed; }
: pero cada vez que desplaza la página, el elemento emergente no seguirá el desplazamiento.popover { width: 100%; }
: no es tan bueno ya que aún depende del ancho principal (es decir,<div class="col-*">
.popover-content { white-space: nowrap; }
: bueno solo si el texto dentro del popover es más corto quemax-width
Ver http://jsfiddle.net/tkrotoff/N99h7/11/
Tal vez, usando navegadores muy recientes, los nuevos valores de ancho de CSS pueden resolver el problema, no lo intenté.
fuente
container: 'body'
normalmente hace el truco (vea la respuesta de JustAnil arriba), pero hay un problema si su popover está en modo modal. Loz-index
coloca detrás del modal cuando está unido el popoverbody
. Esto parece estar relacionado con el problema BS2 5014 , pero lo obtengo en 3.1.1. No debes usar uncontainer
debody
, pero si arreglas el código paraentonces arreglas el
z-index
problema, pero el ancho del popover sigue siendo incorrecto.La única solución que puedo encontrar es usar
container: 'body'
y agregar algunos css adicionales:Tenga en cuenta que las soluciones CSS por sí mismas no funcionarán.
fuente
tooltip-append-to-body
, apareció detrás del fondo modal y el fondo modal 'en gris'.Puede usar el atributo data-container = "body" dentro de popover
fuente
Aquí está la forma no coffeescript de hacerlo con el cursor:
fuente
Una solución probada para Bootstrap 4 beta:
Junto con la declaración jQuery:
Nota lateral,
data-container="body"
ocontainer: "body"
en HTML o comooption
elpopover({})
objeto realmente no hacer el truco [tal vez el hacer el trabajo, pero sólo junto con la declaración CSS];Además, recuerde que Bootstrap 4 beta se basa en popper.js para su posicionamiento popover y tooltip (antes de eso era tether.js)
fuente
Puede ajustar el ancho del popover con los métodos indicados anteriormente, pero lo mejor que puede hacer es definir el ancho del contenido antes de que Bootstrap vea y haga sus cálculos. Por ejemplo, tenía una tabla, definí su ancho, luego bootstrap construyó un popover para adaptarse a ella. (A veces Bootstrap tiene problemas para determinar el ancho, y debes intervenir y sostener su mano)
fuente
Usé esto (trabajando bien):
fuente
Termino estableciendo el ancho div "popover-content" en el número que quiero. (otros identificadores o clase no funcionarán .....) ¡Buena suerte!
fuente
También puede agregar el contenedor de datos = "cuerpo" que debe hacer el trabajo:
fuente
Puede cambiar la plantilla de su popover. Ya sea con el
data-template
atributo o con la parte relevante en la función que lo configura:fuente
Para un componente mecanografiado:
fuente
En Angular
ng-bootstrap
puede simplementecontainer="body"
controlar que se activa el popover (como un botón o un cuadro de texto). Luego, en su archivo de estilo global (style.css
ostyle.scss
) archivo debe agregar.popover { max-width: 100% !important; }
. Después de eso, el contenido del popover se establecerá automáticamente en su ancho de contenido.fuente
En bootstrap 4, simplemente puede anular el valor predeterminado de la variable bootstrap
$popover-max-width
en su archivo styles.scss de la siguiente manera:Más información sobre cómo anular los valores predeterminados de bootstrap 4 https://getbootstrap.com/docs/4.0/getting-started/theming/#variable-defaults
fuente
En Bootstrap 4, puede revisar fácilmente la opción de plantilla, anulando el ancho máximo:
Esta es una buena solución si tiene varios popovers en la página.
fuente
Prueba esto:
fuente
$('.popover').css('width', popover_size + 'px');
dado que popover_size se analiza como entero. Otra cosa es eso:popover_size = ((parseInt(string[0])+350));
agregará ancho adicional.