Aqui estão dois métodos simples para centralizar divs dentro de divs, verticalmente, horizontalmente ou ambos (CSS puro): stackoverflow.com/a/31977476/3597276
Michael Benjamin
Respostas:
158
Estou assumindo que o div pai não tem largura ou é grande e o div filho tem uma largura menor. O seguinte definirá a margem superior e inferior para zero e os lados para se ajustarem automaticamente. Isso centraliza o div.
@Marca. Você sabe como fazer isso funcionar no IE6? O IE6 é realmente péssimo, mas ainda há algumas pessoas que o usam.
Bakhtiyor
@Bakhtiyor: pelo que me lembro, sim. Que problemas você está vendo? você pode querer abrir uma nova pergunta se houver algum problema específico que você está tendo que não foi abordado antes. Não tenho acesso ao IE6 para verificar.
Mark Embling,
3
@Bakhtiyor: na verdade, tendo pensado sobre isso, acho que no IE.old você também precisa definir text-align: center;o parentdiv e, em seguida, defini-lo novamente para a esquerda (ou qualquer outra coisa) para childaquele. Não tenho certeza se esse problema afeta o IE6 ...
Mark Embling
@Mark & @Bakhtiyor por algum motivo, meu childdiv aparentemente foi deslocado para a esquerda - em comparação com navegadores que são mais compatíveis com os padrões - em todas as versões do IE que verifiquei (IE6-8). E text-align: center;para o parente text-align: left;para o childconsertado para todas essas versões.
Você pode usar o valor "auto" para as margens esquerda e direita para permitir que o navegador distribua o espaço disponível igualmente em ambos os lados do div interno:
Respostas:
Estou assumindo que o div pai não tem largura ou é grande e o div filho tem uma largura menor. O seguinte definirá a margem superior e inferior para zero e os lados para se ajustarem automaticamente. Isso centraliza o div.
fonte
text-align: center;
oparent
div e, em seguida, defini-lo novamente para a esquerda (ou qualquer outra coisa) parachild
aquele. Não tenho certeza se esse problema afeta o IE6 ...child
div aparentemente foi deslocado para a esquerda - em comparação com navegadores que são mais compatíveis com os padrões - em todas as versões do IE que verifiquei (IE6-8). Etext-align: center;
para oparent
etext-align: left;
para ochild
consertado para todas essas versões.fonte
text-align:left;
ao #child divtext-align:center
para o div filho ou o div pai?Só por interesse, se você deseja centralizar dois ou mais divs (para que fiquem lado a lado no centro), veja como fazer isso:
fonte
Você pode usar o valor "auto" para as margens esquerda e direita para permitir que o navegador distribua o espaço disponível igualmente em ambos os lados do div interno:
fonte
fonte