Por que os botões e as entradas não se alinham bem no Bootstrap?
Eu tentei algo simples como:
<input type="text"/><button class="btn">button</button>
O botão é mais 5px
baixo que a entrada no chrome / firefox.
fonte
Por que os botões e as entradas não se alinham bem no Bootstrap?
Eu tentei algo simples como:
<input type="text"/><button class="btn">button</button>
O botão é mais 5px
baixo que a entrada no chrome / firefox.
No Twitter Bootstrap 4, entradas e botões podem ser alinhados usando as classes input-group-prepend
e input-group-append
(consulte https://getbootstrap.com/docs/4.0/components/input-group/#button-addons )
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
<input type="text" class="form-control">
</div>
<div class="input-group mb-3">
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
<input type="text" class="form-control">
</div>
Conforme mostrado na resposta de @abimelex, entradas e botões podem ser alinhados usando as .input-group
classes (consulte http://getbootstrap.com/components/#input-groups-buttons )
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
<input type="text" class="form-control">
</div>
<div class="input-group">
<input type="text" class="form-control">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div>
Esta solução foi adicionada para manter minha resposta atualizada, mas faça seu voto positivo na resposta fornecida por @abimelex .
O Bootstrap oferece uma .input-append
classe, que funciona como um elemento wrapper e corrige isso para você:
<div class="input-append">
<input name="search" id="search"/>
<button class="btn">button</button>
</div>
Como apontado por @OleksiyKhilkevich em sua resposta, existe uma segunda maneira de alinhar input
e button
usando a .form-horizontal
classe:
<div class="form-horizontal">
<input name="search" id="search"/>
<button class="btn">button</button>
</div>
A diferença entre essas duas classes é que .input-append
colocará button
o input
elemento contra o elemento (para que pareçam estar anexados), onde .form-horizontal
colocará um espaço entre eles.
-- Nota --
Para permitir a input
e button
elementos de ser ao lado do outro sem espaçamento, o font-size
foi definido como 0
na .input-append
classe (isto remove o espaçamento branco entre os inline-block
elementos). Isso pode ter um efeito adverso no tamanho da fonte do input
elemento, se você deseja substituir os padrões usando em
ou %
medidas.
.input-append
aula.margin-bottom: 9px
mas os botões não, para que eles não ocupem o mesmo espaço vertical. Como os dois elementos têm ummiddle
alinhamento vertical, o botão é deslocado devido à diferença. O uso do.input-append
wrapper remove esse valor da margem inferior.você pode usar a propriedade do botão do grupo de entrada para aplicar o botão diretamente ao campo de entrada.
Bootstrap 3 e 4
Dê uma olhada no documento do grupo de entrada do BS4 para muitos outros exemplos.
fonte
<div class="form-group input-group-btn">
Apenas o aviso, parece haver uma classe CSS especial para isso chamada
form-horizontal
input-append tem outro efeito colateral, que reduz o tamanho da fonte a zero
fonte
font-size: 0
e aprenderam algo novo :) Obrigado!Use .form-inline = Isso alinhará os rótulos à esquerda e os controles de bloco em linha para um layout compacto.
Exemplo: http://jsfiddle.net/hSuy4/292/
.form-horizontal = Alinhe os rótulos à direita e flutue-os para a esquerda para fazê-los aparecer na mesma linha dos controles, o que é melhor para o layout de formulário de 2 colunas.
Exemplos: http://twitter.github.io/bootstrap/base-css.html#forms
fonte
form-inline
funciona para o Bootstrap 3. Obrigado.Tentei acima de tudo e terminei com poucas alterações que gostaria de compartilhar. Aqui está o código que funciona para mim (encontre a captura de tela em anexo):
Se você quiser vê-lo funcionando, basta usar o código abaixo no seu editor:
Espero que isto ajude.
fonte
style="width:0;"
?<div class="col-md-4">
Não há necessidade dewidth: 0
Eu também estava lutando com o mesmo problema. As classes de inicialização que eu uso não estão funcionando para mim. Eu vim com uma solução alternativa, como abaixo:
Basicamente, substituí a propriedade display da classe "form-control" e usei outras propriedades de estilo para corrigir o tamanho e a posição.
A seguir está o resultado:
fonte
Bootstrap 4:
https://getbootstrap.com/docs/4.0/components/input-group/
fonte
fonte
Tentei todos os códigos acima e nenhum deles corrigiu meus problemas. Aqui está o que funcionou para mim. Eu usei input-group-addon.
fonte
Não está diretamente relacionado, a menos que você tenha um código semelhante, mas notei um comportamento estranho ao formulário em linha, bootstrap 3.3.7
Eu não usei linha e células para isso, pois é um projeto de área de trabalho, se a tag de abertura estivesse abaixo da tabela (neste caso):
Os elementos do formulário seriam empilhados.
Interruptor e alinhado corretamente.
O Safari 10.0.2 e o Chrome mais recente não fizeram nenhuma diferença. Talvez meu layout estivesse errado, mas não perdoasse muito.
fonte
Pegue um flutuador de entrada como à esquerda. Então pegue o botão e flutue para a direita. Você pode corrigir a classe quando levar mais de um para distanciar.
fonte
Use isso para mudar sua div para cima ou para baixo na sua linha. Faz maravilhas para mim.
fonte