2008-09-19 21 views

Respuesta

73

No. Cuando usted tiene dos márgenes verticales adyacentes, el mayor de los dos se utiliza y el otro es ignorado.

Así, por ejemplo, si tiene dos elementos de visualización en bloque, A, seguido por B debajo de él, y A tiene un margen inferior de 3em, mientras que B tiene un margen superior de 2em, entonces la distancia entre ellos serán 3em.

Si establece un borde o relleno, esto evita que se produzca el colapso. En el ejemplo anterior, la distancia entre los dos elementos será de 5em.

Si no establece ningún margen, entonces no habrá ningún margen para contraer. No tiene nada que ver con el tipo de elemento en uso: es aplicable a todos los tipos de elementos, no solo a los elementos <div>. Para obtener más detalles, lea the CSS 2.1 specification para obtener más información.

+6

Responderá la respuesta, dado algunos cambios: 1. En el ejemplo '3em/2em', es posible que desee utilizar unidades absolutas en su lugar; en este caso, el 2em/could/be mayor que 3em 2. "Si establece un borde o relleno ..." - esto solo es cierto en ciertos casos, no en el estándar 'A seguido de B' –

+0

3. "Si no establece ningún ..." convencionalmente cierto para los DIV pero el colapso de los márgenes Afectará a la mayoría de los elementos de forma predeterminada –

+7

+1 - buena respuesta. Además, el colapso del margen no ocurre cuando los elementos flotan, están absolutamente posicionados o bloqueados en línea. Más información: http://reference.sitepoint.com/css/collapsingmargins –

4

"la expresión colapso márgenes significa que los márgenes adyacentes (sin no vacía de contenido, relleno o borde áreas o aclaramiento separados) de dos o más cajas (que puede ser uno junto al otro o anidada) se combinan para formar un solo margen ".

Fuente: Box Model - 8.3.1 Collapsing margins

Cuestiones relacionadas