w3schools both bootstrap html css clearfix

html - both - ¿Qué hace la clase clearfix en css?



clearfix w3schools (3)

Esta pregunta ya tiene una respuesta aquí:

He visto las etiquetas div usar una clase de clearfix cuando los elementos secundarios para niños usan la propiedad float . La clase de clearfix se ve así:

.clearfix:after { clear: both; content: "."; display: block; height: 0; visibility: hidden; } .clearfix { display: inline-block; } .clearfix { display: block; }

Descubrí que si no uso clearfix cuando uso la propiedad de bottom-border , el borde se mostraría arriba de los divs secundarios. ¿Alguien puede explicar lo que hace la clase clearfix? Además, ¿por qué hay dos propiedades de display ? Eso me parece muy extraño. Tengo especial curiosidad sobre cuál es el content:''.'' medio.

Gracias, G


Cómo funcionan las carrozas

Cuando existen elementos flotantes en la página, los elementos no flotantes se envuelven alrededor de los elementos flotantes, de forma similar a cómo el texto va alrededor de una imagen en un periódico. Desde la perspectiva de un documento (el propósito original de HTML), así es como funcionan las carrozas.

float vs display:inline

Antes de la invención de la display:inline-block , los sitios web usan float para establecer elementos uno al lado del otro. float es preferible a la display:inline ya que con este último, no puede establecer las dimensiones del elemento (ancho y alto), así como los rellenos verticales (superior e inferior), que pueden hacer los elementos flotados, ya que se tratan como elementos de bloque.

Problemas de flotación

El principal problema es que estamos usando float contra su propósito previsto.

Otra es que, aunque el float permite elementos de nivel de bloque uno al lado del otro, los flotadores no imparten forma a su contenedor . Es como position:absolute , donde el elemento "se saca del diseño". Por ejemplo, cuando un contenedor vacío contiene un 100px x 100px <div> flotante, el <div> no impartirá 100px de altura al contenedor.

A diferencia de la position:absolute , afecta el contenido que la rodea. El contenido después del elemento flotante se "ajustará" alrededor del elemento. Empieza representando al lado y luego debajo, como el texto del periódico que fluiría alrededor de una imagen.

Clearfix al rescate

Lo que clearfix hace es forzar el contenido después de que los flotadores o el contenedor que contiene los flotadores se rendericen debajo de él. Hay muchas versiones para corregir, pero tiene su nombre de la versión que se usa comúnmente: la que usa la propiedad CSS clear .

Ejemplos

Aquí hay varias formas de hacer clearfix , dependiendo del navegador y el caso de uso. Solo se necesita saber cómo usar la propiedad clear en CSS y cómo se renderizan los flotantes en cada navegador para lograr una solución perfecta para todos los navegadores.

Que tienes

Su estilo proporcionado es una forma de clearfix con compatibilidad hacia atrás. Encontré un artículo sobre este clearfix. Resulta que es un clearfix ANTIGUO, que sigue atendiendo a los navegadores antiguos. Hay una versión más nueva y más limpia en el artículo también. Aquí está el desglose:

  • El primer clearfix tiene un pseudo-elemento invisible, que tiene un estilo clear:both , entre el elemento objetivo y el siguiente elemento. Esto fuerza al pseudo-elemento a renderizarse debajo del objetivo, y al siguiente elemento debajo del pseudo-elemento.

  • El segundo agrega la display:inline-block estilo display:inline-block que no es compatible con navegadores anteriores. inline-block es como en línea, pero le ofrece algunas propiedades que bloquean elementos como el ancho, la altura y el relleno vertical. Este fue el objetivo de IE-MAC.

  • Esta fue la reaplicación de la display:block debido a la regla IE-MAC anterior. Esta regla estaba "oculta" de IE-MAC.

En general, estas 3 reglas mantienen el .clearfix trabajando en todos los navegadores, teniendo en cuenta los navegadores antiguos.


Cuando un elemento, como un div se floated , su contenedor padre ya no considera su altura, es decir,

<div id="main"> <div id="child" style="float:left;height:40px;"> Hi</div> </div>

El contenedor principal no tendrá 40 píxeles de alto por defecto. Esto causa muchos pequeños caprichos extraños si está utilizando estos contenedores para estructurar el diseño.

Entonces, la clase clearfix que usan varios frameworks soluciona este problema al hacer que el contenedor principal "reconozca" los elementos contenidos.

Día a día, normalmente solo uso frameworks como 960gs, Twitter Bootstrap para diseñar y no molestarme con la mecánica exacta.

Puede leer más aquí

http://www.webtoolkit.info/css-clearfix.html


clearfix es lo mismo que overflow:hidden . Ambos hijos flotan claramente del padre, pero clearfix no cortará el elemento que se desborda a su parent . También funciona en IE8 y superior.

No hay necesidad de definir "." en contenido y .clearfix. Simplemente escribe así:

.clr:after { clear: both; content: ""; display: block; }

HTML

<div class="parent clr"></div>

Lee estos enlaces para más

http://css-tricks.com/snippets/css/clear-fix/ ,

¿Qué métodos de ''clearfix'' puedo usar?