Estou projetando uma página usando o Bootstrap 3. Estou tentando usar um popover com placement: right
um elemento de entrada. O novo Bootstrap garante que, se você usar, form-control
tenha basicamente um elemento de entrada de largura total.
O código HTML é mais ou menos assim:
<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>
A largura dos popovers é muito baixa, na minha opinião, porque não há nenhuma largura restante na div. Quero o formulário de entrada no lado esquerdo e um amplo popover no lado direito.
Principalmente, estou procurando uma solução em que não precise substituir o Bootstrap.
O JsFiddle em anexo. A segunda opção de entrada. Não usei muito o jsfiddle, então não sei, mas tente aumentar o tamanho da caixa de saída para ver os resultados, em telas menores nem o veríamos. http://jsfiddle.net/Rqx8T/
fonte
$('[data-toggle="popover"]').popover({ container: 'body' });
!important
data-container="body"
no elementocontainer: "body"
.Eu também precisava de uma popover mais ampla para um campo de texto de pesquisa. Eu vim com esta solução Javascript (aqui no Coffee ):
A solução alternativa está na última linha. Antes da exibição do popover, a opção de largura máxima é definida como um valor personalizado. Você também pode adicionar uma classe personalizada ao elemento de dica.
fonte
.on("show.bs.popover", function(){ $(this).data("bs.popover").tip().css("max-width", "600px"); });
max-width
. Obrigado por esta solução! Btw em vez de"600px"
, eu defini-lo"none"
. É melhor pra mim.Eu tive o mesmo problema. Passei bastante tempo procurando uma resposta e encontrei minha própria solução: Adicione o seguinte texto à cabeça:
fonte
Para alterar a largura, você pode usar css
Para tamanho fixo desejado
Para largura máxima desejada:
jsfiddle : http://jsfiddle.net/Rqx8T/2/
fonte
Para alterar a largura do popover, você pode substituir o modelo:
fonte
max-width: 500px
estilo.Para pessoas que preferem a solução JavaScript. No Bootstrap, 4 tip () tornou-se getTipElement () e retorna um objeto no jQuery. Portanto, para alterar a largura da popover no Bootstrap 4, você pode usar:
fonte
width
nãomax-width
Basicamente, eu coloquei o código popover na linha div, em vez da entrada div. Resolveu o problema.
fonte
Com a ajuda do que o @EML descreveu acima sobre popover em janelas modais e também o código mostrado pelo @ 2called-caos, foi assim que resolvi o problema.
Eu tenho um ícone no modal que quando clicado deve aparecer o pop-up
Meu HTML
My Script
fonte
Nenhuma solução final aqui: / Apenas algumas considerações sobre como "limpar" de maneira limpa esse problema ...
Versão atualizada (jQuery 1.11 + Bootstrap 3.1.1 + class = "col-xs-" em vez de class = "col-md-") do seu JSFiddle original: http://jsfiddle.net/tkrotoff/N99h7/
Agora, o mesmo JSFiddle com sua solução proposta : http://jsfiddle.net/tkrotoff/N99h7/8/
Não funciona: o popover está posicionado em relação ao
<div class="col-*">
+ imagine que você tenha várias entradas para o mesmo<div class="col-*">
...Portanto, se queremos manter a popover nas entradas (semanticamente melhor):
.popover { position: fixed; }
: mas sempre que você rolar a página, a popover não seguirá a rolagem.popover { width: 100%; }
: não é tão bom, pois você ainda depende da largura do pai (por exemplo,<div class="col-*">
.popover-content { white-space: nowrap; }
: bom somente se o texto dentro do popover for menor quemax-width
Veja http://jsfiddle.net/tkrotoff/N99h7/11/
Talvez, usando navegadores muito recentes, os novos valores de largura CSS possam resolver o problema, mas não tentei.
fonte
container: 'body'
normalmente faz o truque (veja a resposta de JustAnil acima), mas há um problema se sua popover estiver em um modal. Oz-index
coloca atrás do modal quando o popover é anexadobody
. Isso parece estar relacionado à edição 5014 do BS2 , mas estou recebendo o 3.1.1. Você não deve usar umcontainer
debody
, mas se você corrigir o código paraentão você
z-index
resolve o problema, mas a largura do popover ainda está errada.A única correção que posso encontrar é usar
container: 'body'
e adicionar alguns css extras:Observe que as soluções css por si só não funcionam.
fonte
tooltip-append-to-body
, que apareceu por trás do modal e do fundo 'cinza'.Você pode usar o atributo data-container = "body" no popover
fonte
Aqui está a maneira não-café de fazê-lo com o hover:
fonte
Uma solução testada para o Bootstrap 4 beta:
Juntamente com a instrução jQuery:
Nota lateral,
data-container="body"
oucontainer: "body"
em HTML ou como umoption
para opopover({})
objeto realmente não fazer o truque [talvez o trabalho, mas apenas em conjunto com a declaração CSS fazer];Além disso, lembre-se de que o Bootstrap 4 beta depende do popper.js para seu posicionamento popover e dica de ferramenta (antes disso era tether.js)
fonte
Você pode ajustar a largura da popover com os métodos indicados acima, mas a melhor coisa a fazer é definir a largura do conteúdo antes que o Bootstrap veja e faça suas contas. Por exemplo, eu tinha uma tabela, defini sua largura e, em seguida, o bootstrap construiu um popover para adequá-lo. (Às vezes, o Bootstrap tem problemas para determinar a largura e é necessário entrar e segurar a mão dele)
fonte
Eu usei isso (funcionando bem):
fonte
Acabo definindo div "popover-content" width para o número que eu quero. (outros IDs ou classe não funcionarão .....) Boa sorte!
fonte
você também pode adicionar o data-container = "body" que deve fazer o trabalho:
fonte
Você pode alterar o modelo do seu popover. Com o
data-template
atributo-ou com a parte relevante na função que o configura:fonte
Para um componente datilografado:
fonte
Em Angular,
ng-bootstrap
você pode simplesmentecontainer="body"
controlar o acionador de popover (como botão ou caixa de texto). Em seguida, no seu arquivo de estilo global (style.css
oustyle.scss
), você deve adicionar.popover { max-width: 100% !important; }
. Depois disso, o conteúdo do popover será automaticamente definido para sua largura de conteúdo.fonte
No bootstrap 4, você pode simplesmente substituir o valor padrão da variável de bootstrap
$popover-max-width
no arquivo styles.scss da seguinte maneira:Mais sobre como substituir os padrões do bootstrap 4 https://getbootstrap.com/docs/4.0/getting-started/theming/#variable-defaults
fonte
No Bootstrap 4, você pode revisar facilmente a opção de modelo, substituindo a largura máxima:
Esta é uma boa solução se você tiver vários popovers na página.
fonte
Tente o seguinte:
fonte
$('.popover').css('width', popover_size + 'px');
Como o popover_size é analisado como inteiro. Outra coisa é:popover_size = ((parseInt(string[0])+350));
Adicionará largura extra.