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.
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.
body
e sempre damoswidth
emargin:0 auto
para#wrapper
%
? Quero dizer que há qualquer outra propriedade no css que pode dar mesmo resultado como esquerda e direitaauto
margin:auto 0
condições?auto: o navegador define a margem. O resultado disso depende do navegador
margin: 0 auto especifica
fonte
Na especificação CSS em Calculando larguras e margens para elementos não substituídos no nível do bloco no fluxo normal :
fonte
0
é para o canto superior direito eauto
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.fonte
0 é para cima-inferior e automático para esquerda-direita. O navegador define a margem.
fonte
Torna-se mais claro com algumas explicações de como os dois valores funcionam.
A propriedade margin é uma abreviação para:
Então, como vêm apenas dois valores?
Bem, você pode expressar margem com quatro valores como este:
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:
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:
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.
fonte
É um substituto quebrado / muito difícil de usar para a tag "center". É útil quando você precisa de tabelas quebradas e centralização não funcional para blocos e texto.
fonte