¿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.
¿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.
Respuestas:
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.
%
? Quiero decir, ¿hay alguna otra propiedad en css que pueda dar el mismo resultado como izquierda y derecha?auto
margin:auto 0
condiciones?
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 :
Si tanto 'margin-left' como 'margin-right' son 'auto', sus valores utilizados son iguales. Esto centra horizontalmente el elemento con respecto a los bordes del bloque contenedor.
margin:0 auto;
0
es para arriba-abajo y auto
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.
margin-top:0;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
0 es para arriba-abajo y automático para izquierda-derecha. El navegador establece el margen.
Se vuelve más claro con alguna explicación de cómo funcionan los dos valores.
La propiedad de margen es la abreviatura de:
margin-top
margin-right
margin-bottom
margin-left
Entonces, ¿cómo es que solo dos valores?
Bueno, puede expresar el margen con cuatro valores como este:
margin: 10px, 20px, 15px, 5px;
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:
margin: 20px 10px;
Esto le daría un margen de 20 píxeles superior e inferior y 10 píxeles a izquierda y derecha.
Y si configuras:
margin: 20px auto;
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.
body
y siempre damoswidth
ymargin:0 auto
a#wrapper