¿Qué hace auto
en margin:0 auto;
?
Parece que no puedo entender lo que auto
hace. Sé que a veces tiene el efecto de centrar objetos. Gracias.
Cuando haya especificado un width
en el objeto al que se ha aplicado margin: 0 auto
, el objeto se ubicará centralmente dentro de su contenedor principal.
Especificar auto
como el segundo parámetro básicamente le dice al navegador que determine automáticamente los márgenes izquierdo y derecho, lo que hace al configurarlos por igual. Garantiza que los márgenes izquierdo y derecho se establecerán en el mismo tamaño. El primer parámetro 0 indica que los márgenes superior e inferior se establecerán en 0.
margin-top:0;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
Por lo tanto, para darle un ejemplo , si el padre tiene 100 px y el hijo 50 px, entonces la auto
propiedad determinará que hay 50 px de espacio libre para compartir margin-left
y margin-right
:
var freeSpace = 100 - 50;
var equalShare = freeSpace / 2;
Lo que daría:
margin-left:25;
margin-right:25;
Echa un vistazo a este jsFiddle . No tiene que especificar el ancho principal, solo el ancho del objeto secundario.
body
y siempre damoswidth
ymargin:0 auto
a#wrapper
%
? Quiero decir, ¿hay alguna otra propiedad en css que pueda dar el mismo resultado como izquierda y derecha?auto
margin:auto 0
condiciones?auto: el navegador establece el margen. El resultado de esto depende del navegador
margen: 0 auto especifica
fuente
De la especificación CSS sobre el cálculo de anchos y márgenes para elementos de nivel de bloque no reemplazados en flujo normal :
fuente
0
es para arriba-abajo yauto
para izquierda-derecha. Significa que el margen izquierdo y derecho tomarán el margen automático de acuerdo con el ancho del elemento y el ancho del contenedor.En general, si desea poner cualquier elemento en la posición central, entonces
margin:auto
funciona perfectamente. Pero solo funciona en elementos de bloque.fuente
0 es para arriba-abajo y automático para izquierda-derecha. El navegador establece el margen.
fuente
Se vuelve más claro con alguna explicación de cómo funcionan los dos valores.
La propiedad de margen es la abreviatura de:
Entonces, ¿cómo es que solo dos valores?
Bueno, puede expresar el margen con cuatro valores como este:
lo que significaría 10 px arriba, 20 px derecha, 15 px abajo, 5 px izquierda
Del mismo modo, también puede expresarse con dos valores como este:
Esto le daría un margen de 20 píxeles superior e inferior y 10 píxeles a izquierda y derecha.
Y si configuras:
Entonces eso significa margen superior e inferior de 20px y margen izquierdo y derecho de auto. Y automático significa que el margen izquierdo / derecho se establece automáticamente en función del contenedor. Si su elemento es un elemento de tipo bloque, lo que significa que es un cuadro y ocupa todo el ancho de la vista, establece automáticamente el margen izquierdo y derecho de la misma manera y, por lo tanto, el elemento está centrado.
fuente
Es un reemplazo roto / muy difícil de usar para la etiqueta "centro". Es útil cuando necesita tablas rotas y centrado que no funciona para bloques y texto.
fuente