Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/03/2012, 11:50
Avatar de ryugen
ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 15 años, 7 meses
Puntos: 187
Respuesta: ¿Porqué me ocurre esto?

Tu problema es el clasico problema de floats de CSS, cuando dispones de elementos flotantes dentro de una caja, esta deja de utilizar los elementos que flotan para calcular la altura, por lo tanto al flotar ambos elementos la caja desaparece ya que no contiene elementos.
Hay varios fix para este problema, como agregar debajo de tus elementos un div con la propiedad CSS "clear:both;":
Código CSS:
Ver original
  1. .clearfix { clear:both;}
Código HTML:
Ver original
  1. <section id="about_me" class="cf">
  2.             <img src="images/oscar-prat.jpg" alt="oscar-prat" width="250" height="327">
  3.             <article>
  4.            
  5.             </article>
  6.                          <div class="clearfix"></div>
  7.         </section>


Sin embargo la tecnica que yo utilizo es la siguiente, aplico la siguiente clase CSS al elemento padre contenedor, en tu caso la section con id "about-me"
Código CSS:
Ver original
  1. /* For modern browsers */
  2. .cf:before,
  3. .cf:after {
  4.     content:"";
  5.     display:table;
  6. }
  7.  
  8. .cf:after {
  9.     clear:both;
  10. }
  11.  
  12. /* For IE 6/7 (trigger hasLayout) */
  13. .cf {
  14.     zoom:1;
  15. }

Entonces quedaria algo asi:
Código HTML:
Ver original
  1. <section id="about_me" class="cf">
  2.             <img src="images/oscar-prat.jpg" alt="oscar-prat" width="250" height="327">
  3.             <article>
  4.            
  5.             </article>
  6.         </section>

La primera tecnica introduce marcado innecesario y no semántico.

Por otro lado la segunda técnica introduce CSS no valido (en el hack para IE 6 y 7), pero como solución puede ofrecerse ese estilo en una hoja de estilo proporcionada solo para aquellos navegadores