Apuntes Web
ApuntesWeb.net > Diseño Web >
Problemas resueltos CSS >

El borde del bloque contenedor no aparece

12/04/2010

Un problema común con los diseños css es cuando hacemos flotar elementos y el contenedor no se estira para albergar a las bloques internos. El problema es más explicito y lo podemos notar cuando deseamos agregar un borde alrededor del contenedor y este no encierra los bloques internos.

Veamos el problema graficamente:
Queremos que el borde solido negro encierre a los dos bloque internos, pero eso no ocurre, porque el div contenedor en sí no tiene una altura definida, Por lo tanto, el bloque contenedor se mantiene en la parte superior de los bloques flotantes. flotando bloques CSS Estos son los códigos que estamos usando:
Código CSS
.contenedor {border: 1px solid #000000;}
.izq {width: 400px;height:250px; float: left;}
.der{width: 400px;height:250px; float: right;}
Código HTML
<div class="contenedor">
<div id="izq">Bloque flotante izquierdo</div>
<div id="der">Bloque flotante derecho</div>
</div>

Alternativa de Solución agregando un elemento no flotante

La antigua solución a este problema consistia en agregaba un elemento no flotante, lo que extendia el contenedor

  1. Agregar una clase CSS con clear:both;
  2. Agregar el div en el HTML justo al final del elemento contenedor
Código CSS
.contenedor {border: 1px solid #000000;}
.izq {width: 400px;height:250px; float: left;}
.der{width: 400px;height:250px; float: right;}
.corrige{clear:both;}
Código HTML
<div class="contenedor">
<div id="izq">Bloque flotante izquierdo</div>
<div id="der">Bloque flotante derecho</div>
<div class="corrige"></div>
</div>
Se consigue corregir ahora el contenedor encierra a los bloques flotantes internos
bloques CSS

El inconveniente es la innecesaria adición de un elemento HTML solo para la presentación eso es algo que debemos evitar.

Alternativa de Solución solo con CSS

Es una alternativa más limpia y sencilla, que consiste en agregar unas propiedades CSS, y sin agregar ningún elemento div extra al HTML. Veamos se añade lo siguiente en el CSS.

Código CSS
.contenedor {border: 1px solid #000000;
            overflow: hidden;width: 100%}
.izq {width: 400px;height:250px; float: left;}
.der{width: 400px;height:250px; float: right;}
El ancho es necesario para que surga efecto en en el IE6
Tambien se consigue corregir el contenedor encierra los bloques flotantes internos
bloques CSS
Artículos relacionados:

ARTÍCULOS DESTACADOS

MANUAL CSS

Ejemplos de las propiedades css paso a paso, descargas, ejercicios.

MANUAL XHTML

Aprender HTML paso a paso con ejemplos, descargas, ejercicios, marcado básico.

HOSTING WEB

Alojamiento web gratis, soporte de php, mysql, Ftp, Panel de Control, .htacces y más.

GENERADOR DE COLORES

Programas para generar colores HTML, rgb, hexadecimal, capturar colores de pantalla.

Flotar Imágen con CSS

Flotar una imágen a un lado u otro de un parrafo, mientras el texto esta alrededor de él.

Enlaces

Web Hosting
CSS, HTML, XHTML, Recursos y mucho más, Prohibida su reproducción total o parcial.
© 2009 - 2012 ApuntesWeb.net