17MarDiseño flotante de 2 columnas en explorer 7

El otro día me enfrenté a un diseño en photoshop que debía convertir a css. El diseño tenía el siguiente aspecto.

En el se puede apreciar un degradado de fondo fácil de implementar con una fina tira repetida en el eje x. El diseño tiene dos columnas que se deben poder llenar de contenido y alargarse verticalmente prolongando el fondo que tienen debajo. Hasta ahí todo perfecto. Genero un esquema como este:

 

 <div id=”cuerpo”>
<div id=”izquierda”></div>
<div id=”derecha”></div>
<div id=”pie”></div>
</div>
 

Con esta hoja de estilo:

  1.  
  2.  
  3. #cuerpo {
  4.         background-image: url(../imagenes/fondoCuerpo.jpg);
  5.         background-repeat:  repeat-y;
  6.         width: 938px;
  7.         margin-right: auto;
  8.         margin-left: auto;
  9.  
  10. }
  11. #derecha {
  12.         width: 754px;
  13.         float: right;   
  14. }
  15. body {
  16.         background-image: url(../imagenes/fondo.jpg);
  17.         background-color: #333333;
  18.         background-repeat:   repeat-x;
  19. }
  20. #izquierda {
  21.         float: left;
  22.         width: 100px;
  23.         padding-left: 47px;
  24. }
  25. #pie {
  26.         background-image: url(../imagenes/pie.jpg);
  27.         background-repeat: no-repeat;
  28.         height: 34px;
  29.         width: 938px;
  30.         margin-top: 0px;
  31.         margin-right: auto;
  32.         margin-bottom: 0px;
  33.         margin-left: auto;
  34.         clear: both;
  35. }
  36.  

El problema es una imagen que proyecta una sombra sobre el fondo. No puedo simular la sombra con un png transparente porque Explorer 6.0 no acepta los pngs con transparencias. Tampoco puedo usar un gif porque no tiene la suficiente calidad. Finalmente opto por situar un elemento sin contenido exclusivamente para que contenga el fondo. Recorto la imagen de forma que los bordes queden bien situados con respecto al degradado y coloco una div del tamaño de la imagen generada de forma que el nuevo esquema tiene el siguiente aspecto:

 

<div id=”cuerpo”> 

<div id=”fondo Superior”>

<div id=”izquierda”></div>

<div id=”derecha”></div>

            </div><div id=”pie”></div></div>

Y el código CSS del nuevo elemento:

 

  1.  
  2. #fondoSuperior {
  3. background-image: url(../imagenes/cuerpoNuevo.jpg);
  4. height: 744px;
  5. background-repeat: no-repeat;
  6. background-position: center top;
  7. }
  8.  

Se visualiza perfectamente en Firefox y en Explorer 6.0, pero al visualizarlo en Explorer 7.0 cuando los divs “izquierda” o “derecha” se llenan de contenido el fondo del div “cuerpo” no se prolonga hacia abajo es más, pasa por debajo del div “pie”. Como se puede ver aquí, en un boceto del montaje:

 

Después de mucho comerme la cabeza, la solución la encuentro flotando el elemento:

  1.  
  2.  
  3. #fondoSuperior {
  4.         background-image: url(../imagenes/cuerpoNuevo.jpg);
  5.         background-repeat: no-repeat;
  6. height: 744px;
  7. float: left;
  8. }
  9.  

Lo que soluciona el problema. No me había encontrado aún con diseños que se visualizaran correctamente en Firefox y Explorer 6.0 pero no en Explorer 7.0.


 

Febrero 2012
L M X J V S D
« May    
 12345
6789101112
13141516171819
20212223242526
272829