Foros del Web » Creando para Internet » CSS »

Centrar una imagén dentro de un DIV

Estas en el tema de Centrar una imagén dentro de un DIV en el foro de CSS en Foros del Web. Buenas tardes a todos, Tengo una duda, y los posts que encontre en el buscador, no me ayudaron a solucionarlo. Estoy iniciando en el mundo ...
  #1 (permalink)  
Antiguo 12/07/2014, 17:27
 
Fecha de Ingreso: agosto-2013
Mensajes: 4
Antigüedad: 10 años, 8 meses
Puntos: 0
Centrar una imagén dentro de un DIV

Buenas tardes a todos,

Tengo una duda, y los posts que encontre en el buscador, no me ayudaron a solucionarlo.

Estoy iniciando en el mundo del CSS, y me es imposible centrar una imagen con un border-radius 50%, no importa lo que haga, siempre me queda estatica, no importa si cambio los margin o lo que haga.

Paso el codigo a ver si alguién puede darme una mano.

HTML.
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.     <meta charset="UTF-8">
  4.     <title>Menu efecto Hover</title>
  5.     <link rel="stylesheet" type="text/css" href="index_style.css">
  6.    
  7. </head>
  8.     <div id="home" class="container">
  9.         <img id="icon" alt="" src="pictures/icon1.png">
  10.     </div>
  11.     <header>
  12.        
  13.         <div class="contenedor" id="uno">
  14.             <img class="icon" src="pictures/icon1.png">
  15.             <p class="texto">Home</p>
  16.         </div>
  17.  
  18.         <div class="contenedor" id="dos">
  19.             <img class="icon" src="pictures/icon2.png">
  20.             <p class="texto">Pagina</p>
  21.         </div>
  22.  
  23.         <div class="contenedor" id="tres">
  24.             <img class="icon" src="pictures/icon3.png">
  25.             <p class="texto">Google</p>
  26.         </div>
  27.  
  28.         <div class="contenedor" id="cuatro">
  29.             <img class="icon" src="pictures/icon4.png">
  30.             <p class="texto">Apple</p>
  31.  
  32.         </div>
  33.  
  34.         <div class="contenedor" id="cinco">
  35.             <img class="icon" src="pictures/icon5.png">
  36.             <p class="texto">HTML 5</p>
  37.  
  38.         </div>
  39.  
  40.         <div class="contenedor" id="seis">
  41.             <img class="icon" src="pictures/icon6.png">
  42.             <p class="texto">Correo</p>
  43.  
  44.         </div>
  45.     </header>
  46.    
  47. </body>
  48. </html>

CSS
Código CSS:
Ver original
  1. *{
  2.     margin: 0px;
  3.     padding: 0px;
  4.     font-family: Helvetica;
  5. }
  6.  
  7. header{
  8.     margin: auto;
  9.     margin-top: 300px;
  10.     margin-left: auto;
  11.     width: 1200px;
  12.     height: 230px;
  13.     background-color: #f80808;
  14. }
  15.  
  16. div.contenedor{
  17.     width: 200px;
  18.     height: 230px;
  19.     float: left;
  20.     -webkit-transition:height .4s; /*transicion, del DIV*/
  21.    
  22. }
  23.  
  24. div#uno{
  25.     background-color: rgb(208,101,3);
  26. }
  27.  
  28. div#dos{
  29.     background-color: rgb(233,147,26);
  30. }
  31.  
  32. div#tres{
  33.     background-color: rgb(22,145,190);
  34. }
  35.  
  36. div#cuatro{
  37.     background-color: rgb(22,107,162);
  38. }
  39.  
  40. div#cinco{
  41.     background-color: rgb(27,54,71);
  42. }
  43.  
  44. div#seis{
  45.     background-color: rgb(21,40,54);
  46. }
  47.  
  48. img.icon{
  49.     display: block;
  50.     margin: 50px auto;
  51.     background-color: rgba(255,255,255,0.15);
  52.     width: 40px;
  53.     padding: 20px;
  54.     -webkit-border-radius: 50%;
  55.     -webkit-box-shadow: 0px 0px 0px 30px rgba(255,255,255,0); /*sombra de los iconos*/
  56.     -webkit-transition:box-shadow .4s;
  57.    
  58.  
  59. }
  60. p.texto{
  61.     font-size: 1.2em;
  62.     color:white;
  63.     text-align: center;
  64.     padding-top:10px;
  65.     opacity: .6;
  66.     -webkit-transition:padding-top .4s;
  67.  
  68.  
  69. }
  70.  
  71. div.contenedor:hover{
  72.     height:250px;
  73. }
  74.  
  75. div.contenedor:hover p.texto{
  76.     padding-top: 30px;
  77.     opacity: 1;
  78. }
  79.  
  80. div.contenedor:hover img.icon{
  81.     -webkit-box-shadow: 0px 0px 0px 0px rgba(255,255,255,.6);
  82. }
  83. body {
  84.     background-color: #ccc;
  85. }
  86.  
  87. div#home{
  88.     background-color: #FF5E3A;
  89. }
  90.  
  91. div.container{
  92.     width: 200px;
  93.     height: 200px;
  94.     border-radius: 50%;
  95.  
  96. }
  97. #icono{
  98.     display: block;
  99.     margin: auto;
  100. }

Alguno me podría explicar adonde me equivoque?

gracias!

Última edición por pzin; 12/07/2014 a las 17:39 Razón: Cambiar quote por highlight
  #2 (permalink)  
Antiguo 13/07/2014, 03:09
 
Fecha de Ingreso: julio-2010
Ubicación: A Coruña
Mensajes: 505
Antigüedad: 13 años, 8 meses
Puntos: 60
Respuesta: Centrar una imagén dentro de un DIV

En el .container no le estás marcando de ninguna forma que se centre. Añadele un margin: 0 auto; y "voilá"

Por cierto, no hace falta que pongas "div" delante de cada clase o id.
__________________
http://zeromm.es/
Diseñador Web | Experto en Responsive Design, CSS3 y Optimización Web.
  #3 (permalink)  
Antiguo 13/07/2014, 07:31
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Centrar una imagén dentro de un DIV

Cita:
Iniciado por Zeromm Ver Mensaje
Por cierto, no hace falta que pongas "div" delante de cada clase o id.
Aunque es una buena costumbre y cuando son clases a veces si hace falta.
  #4 (permalink)  
Antiguo 13/07/2014, 07:46
 
Fecha de Ingreso: julio-2010
Ubicación: A Coruña
Mensajes: 505
Antigüedad: 13 años, 8 meses
Puntos: 60
Respuesta: Centrar una imagén dentro de un DIV

Cita:
Iniciado por pzin Ver Mensaje
Aunque es una buena costumbre y cuando son clases a veces si hace falta.
No estoy del todo de acuerdo en que sea buena costumbre, ya que si se usa en casos inecesarios al hacerlo por costumbre solo se conseguirá aumentar el tamaño del css de manera innecesaria.

Y en su código no hacen falta ya que solo tiene capas, y si va a hacer una web con un código como ese, no es una buena optimización. En cambio si trabaja con un etiquetado semantico más amplio, si puede (y digo puede... no digo que sea fundamental) llegar a hacer falta en algún caso muy concreto, pero no en todos.
__________________
http://zeromm.es/
Diseñador Web | Experto en Responsive Design, CSS3 y Optimización Web.
  #5 (permalink)  
Antiguo 13/07/2014, 09:03
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Centrar una imagén dentro de un DIV

Cita:
Iniciado por Zeromm Ver Mensaje
[...]solo se conseguirá aumentar el tamaño del css de manera innecesaria.
No sólo se conseguiría aumentar el tamaño del CSS, sino claridad en el código para uno mismo y para quien venga.
Respecto al tamaño… Un caracter suele (en este caso lo es) ser un byte de información, entonces necesitas tener 1024 caracteres para alcanzar un solo kilobyte, luego una burrada de selectores para que tenga algún alcance importante y más aún para que ralentice.

128 bytes:
Código CSS:
Ver original
  1. #global {
  2.   position: relative;
  3.   margin: 20px;
  4.   height: 20%;
  5.   width: 100px;
  6.   color: blue;
  7.   white-space: nowrap;
  8. }

131 bytes:
Código CSS:
Ver original
  1. div#global {
  2.   position: relative;
  3.   margin: 20px;
  4.   height: 20%;
  5.   width: 100px;
  6.   color: blue;
  7.   white-space: nowrap;
  8. }

Minificando un archivo ganas mucho más que dejando una etiqueta fuera.

94bytes:
Código CSS:
Ver original
  1. div#global{position:relative;margin:20px;height:20%;width:100px;color:blue;white-space:nowrap;}

En Windows la diferencia entre minificar o no debería de ser incluso más.
  #6 (permalink)  
Antiguo 13/07/2014, 09:35
 
Fecha de Ingreso: julio-2010
Ubicación: A Coruña
Mensajes: 505
Antigüedad: 13 años, 8 meses
Puntos: 60
Respuesta: Centrar una imagén dentro de un DIV

Por eso digo, que si no es necesario... ¿porque añadir esos bytes de más?

Repito, en la gran mayoria de casos no es necesario, en determinados casos si puede serlo, como para cambiar la clase de un elemento de forma dinámica, pero si en la mayoria de casos no es necesario y menos con "ids" que se supone que son únicos... ¿porque añadir peso inecesario a la web?

Y el tema de realentizar la web. No solo es el peso del css, si no que poniendole un div delante a todos los selectorers estás haciendo que el navegador tarde más en leer esos estilos, porque entre todo el html va a estar buscando un id o una clase que tenga delante un div, y si tiene que hacer eso en un código de 1000 lineas, al final si se nota.

Y el tema de la claridad para uno mismo y los demás. ¿entonces para que tenemos los comentarios? xD. Es más, de echo si usas algún preprocesador es perfecto porque los comentarios no se añadiran al css final y tendrás un archivo css totalmente claro para otro desarrollador (en el preprocesador) y mas ligero en el archivo final
__________________
http://zeromm.es/
Diseñador Web | Experto en Responsive Design, CSS3 y Optimización Web.

Última edición por Zeromm; 13/07/2014 a las 10:07
  #7 (permalink)  
Antiguo 13/07/2014, 10:25
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Centrar una imagén dentro de un DIV

Zeromm hay mucha leyenda urbana con el tema de la optimización y lo que tarda o no en renderizar el motor del navegador; pon un ejemplo de código donde esto que comentamos haga denotar alguna diferencia perceptiva y verás que la cantidad necesaria de lineas es casi absurda para cualquier sitio web.
  #8 (permalink)  
Antiguo 13/07/2014, 10:31
 
Fecha de Ingreso: julio-2010
Ubicación: A Coruña
Mensajes: 505
Antigüedad: 13 años, 8 meses
Puntos: 60
Respuesta: Centrar una imagén dentro de un DIV

Bueno, pongo el link de la web de mozilla "developer.mozilla.org", que algo de esto saben, en el que confirman que "no es correcto" poner el nombre de una etiqueta delante de un id por ejemplo.
__________________
http://zeromm.es/
Diseñador Web | Experto en Responsive Design, CSS3 y Optimización Web.
  #9 (permalink)  
Antiguo 13/07/2014, 12:11
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Centrar una imagén dentro de un DIV

Bueno, eso ya es otra cuestión. Ahí cualquiera puede escribir y seguir agrandando esas leyendas.
  #10 (permalink)  
Antiguo 13/07/2014, 12:27
 
Fecha de Ingreso: julio-2010
Ubicación: A Coruña
Mensajes: 505
Antigüedad: 13 años, 8 meses
Puntos: 60
Respuesta: Centrar una imagén dentro de un DIV

ya ya... la web de desarrollo de mozilla es tan poco fiable para el css como la de "escriboelcssconlalengua.com", ¿no?
__________________
http://zeromm.es/
Diseñador Web | Experto en Responsive Design, CSS3 y Optimización Web.
  #11 (permalink)  
Antiguo 14/07/2014, 20:48
 
Fecha de Ingreso: agosto-2013
Mensajes: 4
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Centrar una imagén dentro de un DIV

Muchas gracias a todos!

Etiquetas: background, color, hover, html, width
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:44.