¿Necesitas Maquetar o Diseñar una web? ... Consulta nuestra sección Maquetación Freelance o solicita presupuesto a elmaquetadorweb@gmail.com

14.2.15

Cómo evitar el solapado de capas o Container Collapse CSS – Clearfix

¿Alguna vez te ha pasado que el contenido de una capa es mas grande que la capa que lo contiene?

Si la capa que contiene a las otras dos no tienen la propiedad float, se produce lo que se llama Container Collapse, es decir la capa que engloba a las otras dos no se adaptará automáticamente al alto de las capas que tiene dentro, produciéndose el efecto que vemos en la imagen de abajo:

Partimos del siguiente ejemplo en el que una capa que a su vez contiene dos capas con propiedad float:

<div>
    <div style="float: left;">Div 1</div>
    <div style="float: left;">Div 2</div>
</div>

Para arreglarlo hay varias maneras:

- Poner a la capa sin float la propiedad overflow: hidden.
- Usar el famoso hack de Nicolas Gallagher para ello añadiríamos la clase .cf a la capa sin float y en nuestra hoja de estilo añadiremos el hack:

/**
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    contenteditable attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that are clearfixed.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.cf:before,
.cf:after {
    content: &quot; &quot;; /* 1 */
    display: table; /* 2 */
}

.cf:after {
    clear: both;
}

/**
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */
.cf {
    *zoom: 1;
}

No hay comentarios:

Publicar un comentario