Eu tenho uma div que é largura é 100%.
Gostaria de centralizar um botão dentro dele, como posso fazer isso?
<div style="width:100%; height:100%; border: 1px solid">
<button type="button">hello</button>
</div>
Eu tenho uma div que é largura é 100%.
Gostaria de centralizar um botão dentro dele, como posso fazer isso?
<div style="width:100%; height:100%; border: 1px solid">
<button type="button">hello</button>
</div>
Respostas:
Resposta atualizada
Atualizando porque notei que é uma resposta ativa, no entanto, o Flexbox seria a abordagem correta agora.
Demonstração ao vivo
Alinhamento vertical e horizontal.
Apenas horizontal (contanto que o eixo flexível principal seja horizontal, o padrão)
Resposta original usando uma largura fixa e sem flexbox
Se o pôster original desejar alinhamento vertical e central, é bastante fácil para largura e altura fixas do botão, tente o seguinte
Demonstração ao vivo
CSS
apenas para alinhamento horizontal, use
ou
fonte
Você poderia apenas fazer:
Ou você pode fazer assim:
O primeiro irá alinhar tudo dentro da div. O outro centralizará o alinhamento apenas o botão.
fonte
et voila:
Atualização : se o OP estiver procurando pelo centro horizontal e vertical, esta resposta o fará para um elemento fixo de largura / altura.
fonte
Margem: 0 automático; é a resposta correta apenas para centralização horizontal. Para centralizar as duas maneiras, algo como isso funcionará, usando jquery:
Atualizar ... cinco anos depois , era possível usar o flexbox no elemento DIV pai para centralizar facilmente o botão na horizontal e na vertical.
Incluindo todos os prefixos do navegador, para melhor suporte
Mostrar snippet de código
fonte
Com os detalhes limitados fornecidos, assumirei a situação mais simples e direi que você pode usar
text-align: center
:http://jsfiddle.net/pMxty/
fonte
Usando flexbox
E então adicionando a classe ao seu botão.
fonte
Aqui você deve simplificar:
primeiro você tem a posição inicial do seu texto ou botão:
Adicionando essa linha de código css à tag h2 ou à tag div que contém a tag button
Finalmente, o código do resultado será:
fonte
Me deparei com isso e pensei em deixar a solução que usei também, que utiliza
line-height
etext-align: center
faz a centralização vertical e horizontal:Clique aqui para trabalhar com o JSFiddle
fonte
Para centralizar uma
<button type = "button">
vertical e horizontalmente dentro de uma<div>
largura que seja computada dinamicamente como no seu caso, é isso que fazer:text-align: center;
para o empacotamento<div>
: isso centralizará o botão sempre que você redimensionar a<div>
(ou melhor, a janela)Para o alinhamento vertical, você precisará definir
margin: valuepx;
o botão. Esta é a regra sobre como calcularvaluepx
:valuepx = (wrappingDIVheight - buttonHeight)/2
Aqui está uma demonstração do JS Bin .
fonte
A resposta super simples que se aplicará à maioria dos casos é definir a margem
0 auto
e a exibição comoblock
. Você pode ver como eu centralizei meu botão na minha demo no CodePenfonte
O mais fácil é inseri-lo como um "div", dar-lhe uma "margem: 0 auto", mas se você quiser que ele seja centralizado, você precisa dar uma largura
fonte
Opção CSS responsiva para centralizar um botão na vertical e na horizontal sem se preocupar com o tamanho do elemento pai (usando ganchos de atributo de dados para esclarecer questões de separação e separação) :
HTML
CSS
Fiddle: https://jsfiddle.net/crrollyson/zebo1z8f/
fonte
Maneira responsiva de centralizar seu botão em uma div:
fonte
Supondo que div seja #div e button seja #button:
Em seguida, aninhe o botão em div, como de costume.
fonte