Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/12/2011, 23:13
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: De donde sale este padding ?

Ese que tenés es un problema bastante raro, hasta de explicar, nunca encontré una documentación muy precisa al respecto.
Te voy a ejemplificar el problema y la solución (al meno una de las posibles), pero en tu caso de tu código en particular, la solución tendrás que buscarla vos, dado de que tu código involucra otros elementos y es bastante más complejo.

para quelo visualices mejor voy a limitarme a 2 etiquetas, div e img, y como un comentario adicional, pero no menos importante, te aclaro que si usas un doctype xhtm transitional, el inconveniente sencillamente no se produce.

El tema es asi, cuando ponés una imagen dentor de un div, y al div le das ó un color de fondo, o un borde, vas a notar que aparece un pequeño padding en la parte inferior del div. Sin importar cuantos resets le apliques, el padding sigue apareciendo

ejemplo 1 - no se produce el problema

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <style type="text/css">
  7. *{
  8. padding: 0;
  9. margin: 0;
  10. border: none;
  11. }
  12. div {
  13. padding: 0;
  14. border: solid 1px #000;
  15. }
  16. img.bl {
  17. display: block;
  18. }
  19. </head>
  20. <p>El problema, aqui no se produce prque usamos xtml transitional</p>
  21. <div>
  22. <img src="1.jpg" alt="ropes" />
  23. </div>
  24. <p>la solución dándole display: block; a la imagen</p>
  25. <div>
  26. <img src="1.jpg" alt="ropes" class="bl" />
  27. </div>
  28.  
  29. </body>
  30. </html>

Ejemplo 2, con strict, se produce

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <style type="text/css">
  7. *{
  8. padding: 0;
  9. margin: 0;
  10. border: none;
  11. }
  12. div {
  13. padding: 0;
  14. border: solid 1px #000;
  15. }
  16. img.bl {
  17. display: block;
  18. }
  19. </head>
  20. <p>El problema</p>
  21. <div>
  22. <img src="1.jpg" alt="ropes" />
  23. </div>
  24. <p>la solución dándole display: block; a la imagen</p>
  25. <div>
  26. <img src="1.jpg" alt="ropes" class="bl" />
  27. </div>
  28.  
  29. </body>
  30. </html>

con html5, también se produce

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <meta charset="utf-8" />
  4. <title>titulo</title>
  5. <style type="text/css">
  6. *{
  7. padding: 0;
  8. margin: 0;
  9. border: none;
  10. }
  11. div {
  12. padding: 0;
  13. border: solid 1px #000;
  14. }
  15. img.bl {
  16. display: block;
  17. }
  18. </head>
  19. <p>El problema, tembién en html5</p>
  20. <div>
  21. <img src="1.jpg" alt="ropes" />
  22. </div>
  23. <p>la solución dándole display: block; a la imagen</p>
  24. <div>
  25. <img src="1.jpg" alt="ropes" class="bl" />
  26. </div>
  27.  
  28. </body>
  29. </html>

para que no queden dudas atodas les hice un
Código CSS:
Ver original
  1. *{
  2. padding: 0;
  3. margin: 0;
  4. border: none;
  5. }


Ahora, en tu caso, pensé que se le podria dar un Doctype Transitional a tu documento, pero aún as el problema aparece,
Como ves, es bastante extraño e imprevisible. Y se dá en Firefox, IE, Chrome, Opera, hasta dónde pude probar

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.