O que auto
faz em margin:0 auto;
?
Eu não consigo entender o que auto
faz. Eu sei que às vezes tem um efeito de centralizar objetos. Obrigado.
O que auto
faz em margin:0 auto;
?
Eu não consigo entender o que auto
faz. Eu sei que às vezes tem um efeito de centralizar objetos. Obrigado.
Respostas:
Quando você especifica um width
no objeto ao qual se candidatou margin: 0 auto
, o objeto fica centralmente dentro do contêiner pai.
A especificação auto
como o segundo parâmetro basicamente diz ao navegador para determinar automaticamente as margens esquerda e direita, o que é feito definindo-as igualmente. Garante que as margens esquerda e direita serão definidas para o mesmo tamanho. O primeiro parâmetro 0 indica que as margens superior e inferior serão definidas como 0.
margin-top:0;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
Portanto, para dar um exemplo , se o pai tiver 100px e o filho tiver 50px, a auto
propriedade determinará que há 50px de espaço livre para compartilhar entre margin-left
e margin-right
:
var freeSpace = 100 - 50;
var equalShare = freeSpace / 2;
O que daria:
margin-left:25;
margin-right:25;
Dê uma olhada neste jsFiddle . Você não precisa especificar a largura pai, apenas a largura do objeto filho.
%
? Quero dizer que há qualquer outra propriedade no css que pode dar mesmo resultado como esquerda e direitaauto
margin:auto 0
condições?
Na especificação CSS em Calculando larguras e margens para elementos não substituídos no nível do bloco no fluxo normal :
Se 'margin-left' e 'margin-right' forem 'auto', seus valores usados serão iguais. Isso centraliza horizontalmente o elemento em relação às arestas do bloco de contenção.
margin:0 auto;
0
é para o canto superior direito e auto
esquerdo-direito. Isso significa que as margens esquerda e direita terão margem automática de acordo com a largura do elemento e a largura do contêiner.
Geralmente, se você deseja colocar algum elemento na posição central, ele margin:auto
funciona perfeitamente. Mas isso só funciona em elementos de bloco.
margin-top:0;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
0 é para cima-inferior e automático para esquerda-direita. O navegador define a margem.
Torna-se mais claro com algumas explicações de como os dois valores funcionam.
A propriedade margin é uma abreviação para:
margin-top
margin-right
margin-bottom
margin-left
Então, como vêm apenas dois valores?
Bem, você pode expressar margem com quatro valores como este:
margin: 10px, 20px, 15px, 5px;
o que significaria 10 px superior, 20 px direita, 15 px inferior e 5 px à esquerda
Da mesma forma, você também pode expressar com dois valores como este:
margin: 20px 10px;
Isso daria a você uma margem de 20 px na parte superior e inferior e 10 px na esquerda e na direita.
E se você definir:
margin: 20px auto;
Isso significa margem superior e inferior de 20 px e margem esquerda e direita de automático. E automático significa que a margem esquerda / direita é definida automaticamente com base no contêiner. Se o seu elemento é um elemento do tipo bloco, o que significa que é uma caixa e ocupa toda a largura da visualização, então define automaticamente as margens esquerda e direita da mesma forma e, portanto, o elemento é centralizado.
body
e sempre damoswidth
emargin:0 auto
para#wrapper