Quero posicionar um elemento <div>
(ou a <table>
) no centro da tela, independentemente do tamanho da tela. Em outras palavras, o espaço deixado em 'superior' e 'inferior' deve ser igual e o espaço deixado em lados 'direito' e 'esquerdo' deve ser igual. Eu gostaria de fazer isso apenas com CSS.
Eu tentei o seguinte, mas não está funcionando:
<body>
<div style="top:0px; border:1px solid red;">
<table border="1" align="center">
<tr height="100%">
<td height="100%" width="100%" valign="middle" align="center">
We are launching soon!
</td>
</tr>
</table>
</div>
</body>
Nota:
De qualquer maneira, é bom se o <div>
elemento (ou <table>
) rola com o site ou não. Só quero que ele seja centralizado quando a página for carregada.
javascript
css
html
sumit
fonte
fonte
Respostas:
A maneira mais fácil, se você tiver uma largura e altura fixas:
Por favor, não use estilos embutidos! Aqui está um exemplo de trabalho http://jsfiddle.net/S5bKq/ .
fonte
Com as transformações sendo mais onipresentemente suportadas atualmente, você pode fazer isso sem saber a largura / altura do pop-up
Fácil! JSFiddle aqui: http://jsfiddle.net/LgSZV/
Atualização: Confira https://css-tricks.com/centering-css-complete-guide/ para obter um guia bastante completo sobre a centralização de CSS. Adicionando-o a esta resposta, pois parece ter muitos olhos.
fonte
overflow:auto
, a rolagem é estragada no IE9. :(Defina a largura e a altura e você é bom.
Se você deseja que as dimensões do elemento sejam flexíveis (e não se importe com navegadores herdados), siga a resposta do XwipeoutX .
fonte
Funcionará para qualquer objeto. Mesmo se você não souber o tamanho:
fonte
Agora, é mais fácil com HTML 5 e CSS 3:
fonte
Se você tiver uma
div
posição absoluta fixa fixa , a 50% da margem superior e 50% esquerda e margem negativa superior e esquerda de metade da altura e largura, respectivamente. Ajuste às suas necessidades:fonte
Use flex . Muito mais simples e funcionará independentemente do seu
div
tamanho:fonte
Eu faria isso em CSS:
depois em HTML:
fonte
tente isso
Ou isto
fonte
Se houver alguém procurando uma solução,
Eu achei isto,
É a melhor solução que encontrei ainda!
http://dabblet.com/gist/2872671
Espero que goste!
fonte
Outra abordagem fácil e flexível para exibir o bloco no centro: usando o alinhamento de texto nativo com
line-height
etext-align
.Solução:
E amostra html:
Tornamos a
div.parent
tela cheia e o filho único dele sediv.child
alinha como textodisplay: inline-block
.Vantagens:
Exemplo simples no JSFiddle: https://jsfiddle.net/k9u6ma8g
fonte
Solução alternativa que não usa posição absoluta:
vejo muitas respostas absolutas de posição. Eu não poderia usar a posição absoluta sem quebrar outra coisa. Portanto, para aqueles que não conseguiram, aqui está o que eu fiz:
https://stackoverflow.com/a/58622840/6546317 (publicado em resposta a outra pergunta).
A solução se concentra apenas na centralização vertical porque os elementos de meus filhos já estavam centralizados horizontalmente, mas o mesmo poderia ser aplicado se você não pudesse centralizá-los horizontalmente de outra maneira.
fonte
tente isto:
fonte