2010-07-12 9 views
6

/* Borrar * Fix/¿Qué método de clearfix?

.clearfix:after {content: ".";display:block;height:0;clear:both;visibility:hidden;} 
* html .clearfix {height:1%;} 

o

.clearfix:after {content: ".";display:block;height:0;clear:both;visibility:hidden;} 
* html .clearfix, *:first-child+html .clearfix {zoom:1;} 

que trabajaría el mejor? Ya usé el primero y nunca tuve un problema ... Gracias.

+1

Creo que cometiste un error en el segundo> en mi experiencia tienes que poner IE6 e IE7 pirateando en una declaración de línea separada o no va a funcionar – Knu

+0

¿Alguien podría confirmar esto? – dzhi

+0

¿por qué perder propiedades al ocultar el punto que ha agregado, cuando 'content:" "' crea un elemento sin crear un carácter y una línea visibles? – Kornel

Respuesta

1

Esto último parece estar bien porque también considera IE6 (zoom:1;).

+0

jajaja, ms debe ser demandado por perder tantos años hombre. – iamgopal

+0

cualquiera de esas cuentas para IE6. el último es simplemente más flexible. –

0

Esto siempre me ha funcionado. Muy similar a la suya

.clearfix:after { 
    content: "."; 
    display: block; 
    height: 0; 
    font-size:0; 
    clear: both; 
    visibility:hidden; 
} 
    .clearfix{display: inline-block;} 
    * html .clearfix {height: 1%;} 
    .clearfix {display:block;} 
+1

bloque en línea y bloque junto con la altura: el 1% es redundante. 'content:" "' es lo suficientemente bueno. –

3

técnica más sucinta es desbordamiento de la configuración: oculto para los navegadores modernos:

overflow:hidden; 
zoom:1; 

Si un elemento tiene que fluir hacia fuera de las dimensiones (márgenes negativos o posicionamiento), entonces clearfix:

#el:after { content:""; clear:both; display:block; visibility:hidden; } 

Para IE6 y posterior, debe desencadenar hasLayout (a través de un ancho, zoom: 1, alto y otros combos de propiedad/valor). Comenzando con IE7, el desbordamiento borrará los flotadores.

Cuestiones relacionadas