Ver Mensaje Individual
  #5 (permalink)  
Antiguo 18/09/2012, 04:54
noruas
 
Fecha de Ingreso: junio-2012
Mensajes: 80
Antigüedad: 11 años, 10 meses
Puntos: 11
Respuesta: Problema con padding e imagen redonda

Pues mira, he sacado esto otro que va en % pero tiene la pequeña pega de que deforma la imagen....

Soluciones... Hay 3.

1º Poner el height del container en proporción al aspect ratio de la pantalla... Como te he dejado yo en el css... Obiamente eso no serviria de mucho por que cada uno tiene un ratio distinto de pantalla.

2º Vía js o similar sacar el ancho al que esta siendo visualizado el "boxContainer" e imprimir ese valor como height del propio boxContainer para que así tenga el mismo alto que ancho...

3º Vía método que apareció en unos post abajo de la mano de "Bonez" que he adapatado a este menester.

Yo te recomiendo hacerlo con el 2º método, sacas el ancho al que esta en ese momento el boxContainer y que ponga el height al mismo tamaño y entonces la imagen quedara siempre sin deformarse. El 3º método va muy bien, pero es mas fluido y elegantes con js... Pero obiamente pierdes accesibilidad. Podrías usar los dos, usas js y si el navegador del que visualiza la web no tiene js entonces cargas esta segunda hoja de estilos.

No te digo como se haría con js porque no tengo ni papa de ello :P, pero seguro que si sabes usar js o conoces a alguien que sepa no tardaras ni 5 min en hacer lo que digo xD.

1º método:
Código HTML:
Ver original
  1. <style type="text/css">
  2. body {
  3.     background-color: #F9C;
  4. }
  5. #boxContainer {
  6.     width: 100%;
  7.     /*height: 177%;*/
  8.     margin: 0 auto;
  9. }
  10. #box {
  11.     padding: 1%;
  12.     background-color:#FFF;
  13.     -webkit-border-radius: 50%;
  14.     -moz-border-radius: 50%;
  15.     border-radius: 50%;
  16.     box-shadow:5px 5px 15px #999;
  17.    
  18.     width: 50%;
  19.     max-width:600px;
  20.     min-width:100px;
  21.    
  22.     height: 50%;
  23.     max-height:600px;
  24.     min-height:100px;
  25. }
  26. #box img {
  27.     -webkit-border-radius: 50%;
  28.     -moz-border-radius: 50%;
  29.     border-radius: 50%;
  30.     height:100%;
  31.     width:100%;
  32. }
  33. </head>
  34. <div id="boxContainer">
  35.   <div id="box"><img src="1.png" /></div>
  36. </div>
  37. </body>
  38. </html>

3º método:
Código HTML:
Ver original
  1. <style type="text/css">
  2. body {
  3.     background-color: #F9C;
  4. }
  5. #container {
  6.     width: 100%;
  7.     margin: 0 auto;
  8. }
  9. #box {
  10.     padding: 1%;
  11.     background-color:#FFF;
  12.     -webkit-border-radius: 50%;
  13.     -moz-border-radius: 50%;
  14.     border-radius: 50%;
  15.     box-shadow:5px 5px 15px #999;
  16.     width: 100%;
  17.     height: 100%;
  18. }
  19. #box img {
  20.     -webkit-border-radius: 50%;
  21.     -moz-border-radius: 50%;
  22.     border-radius: 50%;
  23.     height:100%;
  24.     width:100%;
  25. }
  26. #boxContainer {
  27.     width: 100%;
  28.     height: 100%;
  29. }
  30. @media (max-width:2000px) {
  31.    #boxContainer {
  32.     width: 1000px;
  33.     height: 1000px;
  34.     }
  35. }
  36. @media (max-width:1900px) {
  37.    #boxContainer {
  38.     width: 950px;
  39.     height: 950px;
  40.     }
  41. }
  42. @media (max-width:1800px) {
  43.    #boxContainer {
  44.     width: 900px;
  45.     height: 900px;
  46.     }
  47. }
  48. @media (max-width:1700px) {
  49.    #boxContainer {
  50.     width: 850px;
  51.     height: 850px;
  52.     }
  53. }
  54. @media (max-width:1600px) {
  55.    #boxContainer {
  56.     width: 800px;
  57.     height: 800px;
  58.     }
  59. }
  60. @media (max-width:1500px) {
  61.    #boxContainer {
  62.     width: 750px;
  63.     height: 750px;
  64.     }
  65. }
  66. @media (max-width:1400px) {
  67.    #boxContainer {
  68.     width: 700px;
  69.     height: 700px;
  70.     }
  71. }
  72. @media (max-width:1300px) {
  73.    #boxContainer {
  74.     width: 650px;
  75.     height: 650px;
  76.     }
  77. }
  78. @media (max-width:1200px) {
  79.    #boxContainer {
  80.     width: 600px;
  81.     height: 600px;
  82.     }
  83. }
  84. @media (max-width:1100px) {
  85.    #boxContainer {
  86.     width: 550px;
  87.     height: 550px;
  88.     }
  89. }
  90. @media (max-width:1000px) {
  91.    #boxContainer {
  92.     width: 500px;
  93.     height: 500px;
  94.     }
  95. }
  96. @media (max-width:900px) {
  97.    #boxContainer {
  98.     width: 450px;
  99.     height: 450px;
  100.     }
  101. }
  102. @media (max-width:800px) {
  103.    #boxContainer {
  104.     width: 400px;
  105.     height: 400px;
  106.     }
  107. }
  108. @media (max-width:700px) {
  109.    #boxContainer {
  110.     width: 350px;
  111.     height: 350px;
  112.     }
  113. }
  114. @media (max-width:600px) {
  115.    #boxContainer {
  116.     width: 300px;
  117.     height: 300px;
  118.     }
  119. }
  120. @media (max-width:500px) {
  121.    #boxContainer {
  122.     width: 250px;
  123.     height: 250px;
  124.     }
  125. }
  126. @media (max-width:400px) {
  127.    #boxContainer {
  128.     width: 200px;
  129.     height: 200px;
  130.     }
  131. }
  132. @media (max-width:300px) {
  133.    #boxContainer {
  134.     width: 150px;
  135.     height: 150px;
  136.     }
  137. }
  138. @media (max-width:200px) {
  139.    #boxContainer {
  140.     width: 100px;
  141.     height: 100px;
  142.     }
  143. }
  144. </head>
  145. <div id="container">
  146.  <div id="boxContainer">
  147.   <div id="box"><img src="1.png" /></div>
  148.  </div>
  149. </div>
  150. </body>
  151. </html>

Espero que te sirva. Saludos.