Foros del Web » Creando para Internet » CSS »

Centrar imagen en un div que es más pequeño.

Estas en el tema de Centrar imagen en un div que es más pequeño. en el foro de CSS en Foros del Web. No hay manera. Os esplico, necesito esto: Tengo que centrar una imagen dentro de un Div, siempre la imagen será más ancha que el div ...
  #1 (permalink)  
Antiguo 17/09/2013, 05:31
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Centrar imagen en un div que es más pequeño.

No hay manera.

Os esplico, necesito esto:


Tengo que centrar una imagen dentro de un Div, siempre la imagen será más ancha que el div y con un algo fijo de 200px.

He probado de todo, margin auto y etc.

y lo único que consigo es esto:


Así queda con el margen automático
  #2 (permalink)  
Antiguo 17/09/2013, 05:33
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen en un div que es más pequeño.

Este es el div principal
Código CSS:
Ver original
  1. ec_div_art {
  2. width: 176px;
  3. margin: 4px 2px;
  4. position: relative;
  5. overflow: hidden;
  6. background-color: white;
  7. float: left;
  8. min-height: 325px;

y esta la imagen:
Código CSS:
Ver original
  1. display: block;
  2. max-height: 176px;
  3. z-index: 1;
  4. margin: auto;

el alto fijo son 176px, perdón.
  #3 (permalink)  
Antiguo 18/09/2013, 09:40
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 14 años, 3 meses
Puntos: 14
Respuesta: Centrar imagen en un div que es más pequeño.

Si siempre vas a tener una imagen en ese bloque, podrías probar a meter un text-align en el div a ver cómo se comporta¿?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #4 (permalink)  
Antiguo 19/09/2013, 03:17
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen en un div que es más pequeño.

text-align: center;


Nada igual, ni se inmuta.
  #5 (permalink)  
Antiguo 20/09/2013, 11:48
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 16 años
Puntos: 10
Respuesta: Centrar imagen en un div que es más pequeño.

Prueba a ponerle a la imagen, position: relative;

De esa forma tendrá relación al div. Y empezara a tomar los márgenes.
__________________
Frontend Developer
JS+HTML5+CSS3
Backend Developer
PHP+MySQL
  #6 (permalink)  
Antiguo 21/09/2013, 07:30
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 8 meses
Puntos: 1826
Respuesta: Centrar imagen en un div que es más pequeño.

Más bien, mete la imagen como fondo css con background. Ahí si puedes poner la posición centrada del div que la contiene.
  #7 (permalink)  
Antiguo 23/09/2013, 03:15
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen en un div que es más pequeño.

Cita:
Iniciado por carscx Ver Mensaje
Prueba a ponerle a la imagen, position: relative;

De esa forma tendrá relación al div. Y empezara a tomar los márgenes.
nada... igual.
  #8 (permalink)  
Antiguo 23/09/2013, 03:16
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen en un div que es más pequeño.

Cita:
Iniciado por Rafael Ver Mensaje
Más bien, mete la imagen como fondo css con background. Ahí si puedes poner la posición centrada del div que la contiene.
No puedo, el nombre de la imagen lo saco después de una consulta a la base de datos y la hoja CSS está a parte, la página está en Xhtml Strict




Tan complicado es?
  #9 (permalink)  
Antiguo 23/09/2013, 10:08
 
Fecha de Ingreso: agosto-2013
Mensajes: 46
Antigüedad: 11 años, 2 meses
Puntos: 12
Respuesta: Centrar imagen en un div que es más pequeño.

declarada como bloque
left: 50%
y la trasladas en el eje x el -50% (transform: translatex(-50%);)
  #10 (permalink)  
Antiguo 23/09/2013, 14:10
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen en un div que es más pequeño.

esto último no lo he visto en mi vida.

Código CSS:
Ver original
  1. .ec_div_art>img {
  2. display: block;
  3. max-height: 176px;
  4. z-index: 1;
  5. left: 50%;
  6. transform: translatex(-50%);

La última línea no la entiende el navegador.
  #11 (permalink)  
Antiguo 23/09/2013, 14:44
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Respuesta: Centrar imagen en un div que es más pequeño.

Usa los prefijos propietarios, depende del navegador y su versión, algunos lo necesitan.

Código CSS:
Ver original
  1. -webkit-transform: translatex(-50%);
  2. -moz-transform: translatex(-50%);
  3. -ms-transform: translatex(-50%);
  4. -o-transform: translatex(-50%);
  5. transform: translatex(-50%);
  #12 (permalink)  
Antiguo 02/10/2013, 10:48
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen en un div que es más pequeño.

Lo dejé por imposible, pero ahora tengo que volver a esta parte y terminarlo, con el código anterior algo hace, este es el resultado:

  #13 (permalink)  
Antiguo 02/10/2013, 10:49
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen en un div que es más pequeño.

centra la imagen en el lateral del div justamente, parece que coge como referencia un left:0px del div o yo que sé

me tiene hablando solo.
  #14 (permalink)  
Antiguo 02/10/2013, 11:46
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Respuesta: Centrar imagen en un div que es más pequeño.

Te falta indicar una posición diferente a estática —por defecto— para que left funcione.

Código CSS:
Ver original
  1. .ec_div_art > img {
  2.   position: relative;
  3. }
  #15 (permalink)  
Antiguo 02/10/2013, 13:21
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen en un div que es más pequeño.

que va tío, igual. se queda como el último gráfico.
  #16 (permalink)  
Antiguo 02/10/2013, 13:23
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen en un div que es más pequeño.

pero como una cosa tan tonta puede ser tan complicada.

clase entera:

Código CSS:
Ver original
  1. .ec_div_art {
  2.     width:176px;
  3.     margin: 4px 2px;
  4.     position:relative;
  5.     overflow:hidden;
  6.     float:left;
  7.     min-height:325px;
  8. }
  9. .ec_div_art:hover{
  10.     box-shadow: 0px 0px 10px 0px #777777;
  11.     border-radius:5px;
  12.  
  13. }
  14. .ec_div_art>p{
  15.     font: normal normal bold 1.3em verdana;
  16.     display: block;
  17.     position: absolute;
  18.     top: 5px;
  19.     left: 5px;
  20.     margin: 0;
  21.     padding: 0;
  22.     width: 64px;
  23.     height: 64px;
  24.     background: url('Images_sys/ico64_oferta.png') no-repeat left;
  25.     line-height: 55px;
  26.     color: white;
  27.     z-index: 2;
  28.     text-indent: 24px;
  29.     opacity:0.8;   
  30. }
  31. .ec_div_art > span{
  32.     display: none;
  33.     position: absolute;
  34.     top: 5px;
  35.     right: 5px;
  36.     margin: 0;
  37.     padding: 0;
  38.     width: 32px;
  39.     height: 32px;
  40.     line-height: 55px;
  41.     z-index: 3;
  42. }
  43.  
  44. .ec_div_art:hover > span{
  45.     display:block;
  46. }
  47.  
  48. .ec_div_art > a > img{
  49.     display: block;
  50.     max-height: 176px;
  51.     z-index:1;
  52.  
  53. }
  54. .ec_div_art>div{
  55.     display:none;
  56.     position:absolute;
  57.     bottom: 150px;
  58.     left: 5px;
  59.     z-index:3;
  60. }
  61. .ec_div_art:hover > div{
  62.     display:block;
  63. }
  64. .ec_div_art > div > ul{
  65.     list-style: none;
  66.     color:white;
  67.  
  68. }
  69. .ec_div_art > div > ul li{
  70.     line-height:20px;
  71.     background-color:black;
  72.     margin:3px;
  73.     padding:2px;
  74.     border-radius:3px;
  75.     font-size: 0.9em;
  76.    
  77. }
  78.  
  79. .ec_div_art > ul{
  80.     text-align:center;
  81.     position:absolute;
  82.     bottom:5px;
  83.     padding: 2px;
  84. }
  85.  
  86. .ec_div_art > ul li{
  87.     margin:10px 0;
  88. }
  89.  
  90. .ec_div_art > ul li span{
  91.     text-decoration:line-through;
  92. }
  93.  
  94. .ec_div_art > ul li p{
  95.     font-size:1.2em;
  96.     font-weight:bold;
  97. }

y este es el sub que va haciendo las "cajitas" de los artículos:
Código ASP:
Ver original
  1. <%
  2. Sub EC_formatoart_1 ()
  3.     %>
  4.     <div class="ec_div_art">
  5.         <%
  6.         'Muestra el icono de la oferta con el porcentaje.
  7.         If MatrizPVP(2) <> 0 Then
  8.             %>
  9.             <p><%=MatrizPVP(2)%>%</p>
  10.             <%
  11.         End If
  12.  
  13.         If ComprobarLogico("EC_Config", "VendersinStock", "Idreg=1") = 1 Or Rs("Stock") > 0 Then
  14.             %>
  15.             <span><a href="<%=Nombre_Pagina%>?proceso=addcesta&id=<%=Rs("Id")%>"><img title="Añadir a la cesta" alt="Añadir a la cesta" src="images_sys/ico32_cesta.png" /></a></span>
  16.             <%
  17.         End If
  18.        
  19.        
  20.         %>
  21.         <a href="<%=Nombre_Pagina%>?proceso=verficha&id=<%=Rs("Id")%>"><img alt="Foto 1" src="<%=ExisteFoto("FotosART", Rs("Id") & "1.jpg")%>" /></a>
  22.         <div>
  23.             <ul>
  24.                 <%
  25.                 'Muestra las características al pasar si las hay.
  26.                 If Rs("Fabricante") <> 1 Then Response.Write "<li>Fabricante: " & ComprobarLogico("EC_Fabricante", "Nombre", "Id=" & Rs("Fabricante")) & "</li>"
  27.                 If Rs("Talla") <> 1 Then Response.Write "<li>Talla: " & ComprobarLogico("EC_Talla", "Nombre", "Id=" & Rs("Talla")) & "</li>"
  28.                 If Rs("Color") <> 1 Then Response.Write "<li>Color: " & ComprobarLogico("EC_Color", "Nombre", "Id=" & Rs("Color")) & "</li>"
  29.                 %>
  30.             </ul>
  31.         </div>
  32.         <ul>
  33.             <li><b>[<%=Rs("Codigo")%>]</b><%=Rs("Descripcion")%></li>
  34.             <%
  35.             If MatrizPVP(2) <> 0 Then
  36.                 %>
  37.                 <li><p><span><%=Precio%></span></p></li>
  38.                 <li><p><%=PrecioDTO%></p></li>
  39.                 <%
  40.             Else
  41.                 %>
  42.                 <li><p><%=Precio%></p></li>
  43.                 <%
  44.             End If
  45.             %>
  46.            
  47.             <li title="<%=MatrizPorte(2)%>">(Envío <%=PorteUser%>)</li>
  48.             <%
  49.             'Muestra el stock si hay control de existencias.
  50.             If ComprobarLogico("EC_Config", "VendersinStock", "Idreg=1") = O Then
  51.                 %>
  52.                 <li>
  53.                     <%
  54.                     If EC_ObtenerStock(Rs("Id")) > 1 Then
  55.                         Response.Write "Quedan " & EC_ObtenerStock(Rs("Id")) & " Unidades"
  56.                     ElseIf EC_ObtenerStock(Rs("Id")) = 1 Then
  57.                         Response.Write "Queda " & EC_ObtenerStock(Rs("Id")) & " Unidad"
  58.                     ElseIf EC_ObtenerStock(Rs("Id")) < 1 Then
  59.                         Response.Write "Sin Existencias"
  60.                     End IF
  61.                     %>
  62.                 </li>
  63.                 <%
  64.             End If
  65.             %>
  66.         </ul>
  67.    
  68.     </div> 
  69.    
  70.     <%
  71. End Sub
  72. %>
  #17 (permalink)  
Antiguo 02/10/2013, 13:25
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen en un div que es más pequeño.

la imagen como veis está dentro del div, después de un span y un a
  #18 (permalink)  
Antiguo 02/10/2013, 13:38
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Respuesta: Centrar imagen en un div que es más pequeño.

¿Puedes publicar el HTML resultante en lugar de código ASP?
  #19 (permalink)  
Antiguo 02/10/2013, 13:40
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen en un div que es más pequeño.

yeaaaahhh

Código HTML:
Ver original
  1. <div class="ec_div_art">
  2.        
  3.             <span><a href="ec_index.asp?proceso=addcesta&amp;id=18"><img title="Añadir a la cesta" alt="Añadir a la cesta" src="images_sys/ico32_cesta.png"></a></span>
  4.            
  5.         <a href="ec_index.asp?proceso=verficha&amp;id=18"><img alt="Foto 1" src="FotosART/181.jpg"></a>
  6.         <div>
  7.             <ul>
  8.                 <li>Fabricante: INTEL </li>
  9.             </ul>
  10.         </div>
  11.         <ul>
  12.             <li><b>[10028]</b>80GB SSD SERIE 320 INTEL PACK KIT CLON.</li>
  13.            
  14.                 <li><p>136,50€ + IVA</p></li>
  15.                
  16.            
  17.             <li title="No tenemos su dirección de envío, este importe es el general.">(Envío 6,22€ + IVA)</li>
  18.            
  19.                 <li>
  20.                     Quedan 87 Unidades
  21.                 </li>
  22.                
  23.         </ul>
  24.    
  25.     </div>
  #20 (permalink)  
Antiguo 02/10/2013, 13:41
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen en un div que es más pequeño.

toy-subriendo

El div principal lo he probado con todos los position posibles.
  #21 (permalink)  
Antiguo 02/10/2013, 13:47
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Respuesta: Centrar imagen en un div que es más pequeño.

No tienes nada aplicado de lo que se te ha dicho. Y lo que se te ha dicho funciona perfectamente bien:

Código CSS:
Ver original
  1. .ec_div_art > a > img {
  2.   position: relative;
  3.   left: 50%;
  4.   display: block;
  5.   max-height: 176px;
  6.   z-index:1;
  7.   -webkit-transform: translatex(-50%);
  8. }



Está para que funcione en Opera/Chrome/Safari, para los demás navegadores tendrás que añadir los demás prefijos propietarios.

  #22 (permalink)  
Antiguo 02/10/2013, 13:51
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 11 meses
Puntos: 6
Respuesta: Centrar imagen en un div que es más pequeño.

ostras perdona, es que lo he modificado directamente en Chrome y al cerralo y abrirlo pues he perdido lo hecho.

Pero sí.. oleeeeeee... me faltaba poner left: 50%;

Te daba besos como merengues hacen falta para partir una campana (pero sin mariconismo)

Muchas gracias, me ha tenido amargado.
  #23 (permalink)  
Antiguo 02/10/2013, 14:20
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Respuesta: Centrar imagen en un div que es más pequeño.

Los besos a faillure, que fue quien dio la solución.

Etiquetas: img, margin
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 00:38.