Flotación de CSS
- Página anterior Posicionamiento absoluto de CSS
- Página siguiente Selector de elemento de CSS
Los cuadros flotantes pueden moverse a la izquierda o a la derecha hasta que su borde externo toque el borde del contenedor o de otro contenedor flotante.
Dado que el contenedor flotante no está en el flujo normal del documento, los cuadros de bloque en el flujo normal del documento actúan como si el contenedor flotante no existiera.
Flotación de CSS
Vea la siguiente imagen, cuando el cuadro 1 se desplaza hacia la derecha, se desplaza hacia la derecha y sale del flujo del documento, hasta que su borde derecho toque el borde derecho del contenedor:

Vea la siguiente imagen, cuando el cuadro 1 se desplaza hacia la izquierda, se desplaza hacia la izquierda y sale del flujo del documento, hasta que su borde izquierdo toque el borde izquierdo del contenedor. Ya que ya no está en el flujo del documento, no ocupa espacio, de hecho, cubre el cuadro 2, haciendo que el cuadro 2 desaparezca de la vista.
Si se mueven todos los tres cuadros hacia la izquierda, el cuadro 1 se desplaza hacia la izquierda hasta que toque el contenedor, y los otros dos cuadros se desplazan hacia la izquierda hasta que toquen al cuadro flotante anterior.

Como se muestra en la siguiente imagen, si el contenedor es demasiado estrecho para contener tres elementos flotantes alineados horizontalmente, los otros bloques flotantes se mueven hacia abajo hasta que haya suficiente espacio. Si los elementos flotantes tienen alturas diferentes, pueden ser 'bloqueados' por otros elementos flotantes cuando se mueven hacia abajo:

Propiedad float de CSS
En CSS, realizamos el flotamiento de elementos a través de la propiedad float.
Para obtener más información sobre la propiedad float, consulte el manual de referencia:Propiedad float de CSS。
Contenedor de línea y limpieza
El contenedor de línea al lado del contenedor flotante se acorta, dejando espacio para el contenedor flotante, y el contenedor de línea se enmarca alrededor del contenedor flotante.
Por lo tanto, crear un contenedor flotante permite que el texto se enmarque alrededor de la imagen:

Para evitar que el contenedor de línea se enmarque alrededor del contenedor flotante, es necesario aplicar al cuadro Atributo clear. El valor de la propiedad clear puede ser left, right, both o none, lo que indica qué lados del cuadro no deben estar cerca de la caja flotante.
Para lograr este efecto, en el elemento que se limpiará,Margen superior externoAñadir suficiente espacio para que el borde superior del elemento descienda verticalmente debajo de la caja flotante:

Esta es una herramienta útil que permite que los elementos circundantes dejen espacio para el elemento flotante.
Veamos más detalladamente el flotamiento y la limpieza. Supongamos que deseamos que una imagen flote a la izquierda de un bloque de texto y que esta imagen y el texto estén contenidos en otro elemento con color de fondo y borde. Puede escribir el siguiente código:
.news { background-color: gris; border: solid 1px negro; } .news img { float: left; } .news p { float: right; } <div class="news"> <img src="news-pic.jpg" /> <p>algún texto</p> </div>
En este caso, se ha producido un problema. Porque el elemento flotante se ha desplazado del flujo del documento, el div que rodea la imagen y el texto no ocupa espacio.
¿Cómo hacer que el elemento envolvente rodee visualmente al elemento flotante? Es necesario aplicar clear en alguna parte de este elemento:

Desafortunadamente, se ha producido un nuevo problema, ya que no hay elementos existentes que puedan aplicarse para la limpieza, por lo que solo podemos agregar un elemento vacío y limpiarlo.
.news { background-color: gris; border: solid 1px negro; } .news img { float: left; } .news p { float: right; } .clear { clear: both; } <div class="news"> <img src="news-pic.jpg" /> <p>algún texto</p> <div class="clear"></div> </div>
Esto logrará el efecto que deseamos, pero necesitará agregar código adicional. A menudo, hay elementos que pueden aplicar clear, pero a veces es necesario agregar etiquetas inútiles para el diseño.
Sin embargo, tenemos otra manera, es flotar el contenedor div:
.news { background-color: gris; border: solid 1px negro; float: left; } .news img { float: left; } .news p { float: right; } <div class="news"> <img src="news-pic.jpg" /> <p>algún texto</p> </div>
De esta manera, obtendremos el efecto que deseamos. Desafortunadamente, el siguiente elemento se verá afectado por este elemento flotante. Para resolver este problema, algunas personas eligen flotar todo el diseño y luego limpiar estos flotantes con elementos significativos adecuados (a menudo, el pie de página del sitio). Esto ayuda a reducir o eliminar etiquetas innecesarias.
De hecho, todos los sitios en CodeW3C.com utilizan esta técnica. Si abre el archivo CSS que usamos, verá que hemos limpiado el div del pie de página, y los tres divs superiores se flotan a la izquierda.
Propiedad clear de CSS
Acabamos de discutir en detalle el principio de funcionamiento de la limpieza de CSS y la aplicación del atributo clear. Si desea aprender más sobre el atributo clear, visite el manual de referencia:Propiedad clear de CSS。
Ejemplo de flotación y limpieza
- Aplicación simple de la propiedad float
- Hacer que la imagen flote a la derecha de un párrafo
- Flotar la imagen con borde y frontera a la derecha del párrafo
- Hacer que la imagen flote a la derecha del párrafo. Agregue un borde y una frontera a la imagen.
- La imagen con título flota a la derecha
- Hacer que la imagen con título flote a la derecha
- Hacer que la inicial de un párrafo flote a la izquierda
- Hacer que la inicial de un párrafo flote a la izquierda y agregarle estilo a esta letra.
- Crear un menú horizontal
- Cree un menú horizontal usando flotación con enlaces de una columna.
- Crear una página principal sin tabla
- Use la flotación para crear una página principal con encabezado, pie de página, índice lateral y contenido principal.
- Limpieza del lado del elemento
- Este ejemplo muestra cómo usar elementos flotantes laterales para limpiar.
- Página anterior Posicionamiento absoluto de CSS
- Página siguiente Selector de elemento de CSS