Para centralizar um elemento HTML, posso usar o CSS left: 50%;
. No entanto, isso centraliza o elemento em relação a toda a janela.
Eu tenho um elemento que é filho de um <div>
elemento e quero centralizar o filho em relação a esse pai <div>
, não a janela inteira.
Não quero que o contêiner <div>
tenha todo o seu conteúdo centralizado, apenas um filho específico.
text-align
parece não funcionar em um<i>
elemento. Dando uma aula ...display: table-cell
ouflexbox
para isso. Dê uma olhada no link que eu adicionei.Na verdade, isso é muito simples com as caixas flexíveis CSS3 .
ATUALIZAR:
Parece que não li a edição do OP no momento em que escrevi esta resposta. O código acima centralizará todos os elementos internos (sem sobreposição entre eles), mas o OP deseja que apenas um elemento específico seja centralizado , não os outros elementos internos. Portanto, o segundo método de resposta do @Warface é mais adequado, mas ainda exige centralização vertical:
fonte
CSS
HTML
Isso deve centralizar a div
2016 - método HTML5 + CSS3
CSS
HTML
Fiddledlidle
https://jsfiddle.net/1z7m83dx/
fonte
text-align:center;
na div dos pais Deve fazer o truquefonte
Para centralizar apenas o filho específico:
OU, você também pode usar o flex, mas isso centralizaria todas as crianças
fonte
Você pode usar o nome da classe flex de auto-inicialização assim:
Isso funcionará mesmo com o número de elementos internos.
fonte
A div tem uma largura fixa ou uma largura de fluido? De qualquer maneira, para a largura do fluido, você pode usar:
Ou você pode definir o div pai para
text-align:center;
e o filho div paratext-align:left;
.E
left:50%;
apenas o centraliza de acordo com a página inteira quando o div está definido comoposition:absolute;
. Se você definir o divleft:50%;
, deve fazê-lo em relação à largura do div principal. Para largura fixa, faça o seguinte:fonte
basta dar ao pai div
position: relative
fonte
Se você deseja usar CSS3:
Você pode querer fazer pesquisas adicionais para descobrir como obter a porcentagem que se ajusta à largura do seu elemento.
fonte
Primeiro, você pode fazer isso com a esquerda: 50% para centralizá-la em relação à div pai, mas para isso você precisa aprender o posicionamento CSS.
Uma solução possível de muitos é fazer algo como
Se seu div estiver centrado, você pode posicionar-se relativamente, basta fazer
fonte
text-align:center;
esquerda: 50% trabalha ressecamente com o pai mais próximo com a largura estática atribuída. Experimente a largura: 500 px ou algo na div principal. Como alternativa, torne o conteúdo que você precisa para centralizar a exibição: bloqueie e defina as margens esquerda e direita como automáticas.
fonte
Se o elemento filho estiver embutido (por exemplo, não um
div
,table
etc), eu o envolveria dentro de umdiv
ou ap
e faria o texto do wrapper alinhar a propriedade css igual ao centro.Caso contrário, se o elemento for um bloco (
display: block
por exemplo, adiv
ou ap
) com uma largura fixa, eu definiria suas margens e propriedades css esquerda e direita como auto.Obviamente, você pode adicionar um
text-align: center
ao elemento wrapper para tornar seu conteúdo centralizado também.Não vou me preocupar com o posicionamento, porque o IMHO não é o caminho a seguir para o problema dos OPs, mas verifique este link , muito útil.
fonte
Crie um novo elemento div para o seu elemento centralizar e, em seguida, adicione uma classe especificamente para centralizar esse elemento como este
Css
fonte
Eu encontrei outra solução
e no corpo
Isso centralizará sua divisão de conteúdo sempre que seu contêiner for maior ou menor. Nesse caso, seu conteúdo deve ser maior que 1100% do contêiner para não ser centralizado, mas, nesse caso, você pode tornar o contêinerSecond maior e funcionará
fonte
Atribua
text-align: center;
ao pai edisplay: inline-block;
ao div.fonte
por exemplo, eu tenho uma div de artigo que está dentro de uma div de conteúdo principal. Dentro do artigo há uma imagem e abaixo dessa imagem há um botão, estilo como este:
.article {
} .article {
}
/ * dentro do artigo, quero a imagem centralizada * /
.article img {
}
/ * Agora, nesta imagem, no mesmo elemento do artigo, deve haver um botão como leia mais Claro que você precisa trabalhar com em ou% quando estiver dentro de um design responsivo * /
.button {
}
Boa sorte
fonte
Se você deseja centralizar elementos dentro de uma div e não se importa com o tamanho da divisão, use o Flex power. Eu prefiro usar flex e não uso tamanho exato para elementos.
Como você pode ver, a div externa é o contêiner Flex e o interno deve ser o item Flex especificado com
flex: 1 1 auto;
para entender melhor que você pode ver esta amostra simples. http://jsfiddle.net/QMaster/hC223/Espero que esta ajuda.
fonte
o meu gostaria de mágica.
fonte
fonte