Tengo un div que es 145px X 145px. Tengo un img dentro de esta inmersión. El img puede ser de cualquier tamaño (el lado más largo es 130px). Me gustaría que la imagen se centre verticalmente en el div. Todo lo que he probado funciona en la mayoría de los navegadores, pero no en IE7. Necesito algo que funcione en IE7.vertical alinea la imagen del centro en el tamaño fijo div
Respuesta
No estoy seguro de lo que ha intentado hasta ahora, pero la propiedad vertical-alinear CSS debería funcionar si las imágenes se muestran como elementos en línea.
algo de información sobre vertical-align: http://www.w3schools.com/css/pr_pos_vertical-align.asp
Si usted tiene que dar cuenta de todas las alturas de imagen, que es prácticamente la única manera sin el uso de JavaScript.
Si las imágenes no están en línea los elementos y sólo tuvo que adaptarse a las imágenes de una altura constante, usted podría hacer algo como esto:
img {
margin-top: -50px; /* This number should be half the height of your image */
position: absolute;
top: 50%;
}
lo contrario, la única manera que se me ocurre para acomodar imágenes de altura variable sería hacer algo similar con su CSS, pero establezca el margen negativo a la mitad de la altura de la imagen con JS.
Pero como él dice, las imágenes "img podrían ser de cualquier tamaño". Por lo tanto, el valor de -50 solo funcionaría para imágenes exactamente 100px de alto. Por lo tanto, no estoy seguro de por qué esta respuesta tiene tantas votaciones, cuando no resuelve el problema del PO. – NickG
Sí, mi respuesta principal es para diferentes tamaños de imágenes, pero proporcioné algunos detalles sobre otras dos opciones también. ¿Has leído mi respuesta completa o solo el código? –
No estoy seguro sobre IE7 pero para IE9 y resto de los navegadores modernos siguientes obras.
.picturecontainer{
width:800px;
height:800px;
border:solid 1px;
display:table-cell;
vertical-align:middle;
}
.horizontalcenter{
display:block;
margin-left:auto;
margin-right:auto;
vertical-align:middle;
}
para usarlo
<div class="picturecontainer"><img src="" class="horizontalcenter"/></div>
Esto coloca las imágenes en el punto muerto.
he creado un poco de código jQuery para hacer esto sin tener que utilizar tablas desagradables:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js">
imagepos = function() {
$('img').each(function() {
imgheight = Math.round($(this).height()/2);
imgwidth = Math.round($(this).width()/2);
$(this).attr("style", "margin-top: -" + imgheight + "px; margin-left: -" + imgwidth + "px; opacity:1;");
});
}
$(window).load(imagepos);
</script>
Y también necesita un poco de css:
div
{
position:relative;
}
img
{
display:block;
margin:auto;
max-width:100%;
position:absolute;
top:50%;
left:50%;
opacity:0;
}
aquí es una solución multi-navegador :
<div class="img-container"><img src="picture.png" class="cropped"/></div>
div.img-container {
width: 390px;
height: 211px;
position: relative;
margin-left: auto;
margin-right: auto;
overflow: hidden;
}
img.cropped {
position: absolute;
margin: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
Esta solución fue increíble. Busqué por toda la red y las dos soluciones comunes de table-cell y flexbox no funcionaron para mí, pero esta funcionó como magia. – RantriX
No he probado esto en ningún navegador que no sea Chrome, pero funciona muy bien allí ... –
Buena solución, útil, gracias! – jjj
El uso de la propiedad line-height
resolvió el problema para mí.
Referencia: vertical-align image in div
HTML:
<div class="img_thumb">
<a class="images_class" href="large.jpg" rel="images"><img src="http://www.minfo.pt/fotos/_cache/produtos/0/068.M.976010002__thumbnail_50_50_true_sharpen_1_1.JPG" title="img_title" alt="img_alt" /></a>
</div>
CSS:
.img_thumb {
float: left;
height: 120px;
margin-bottom: 5px;
margin-left: 9px;
position: relative;
width: 147px;
background-color: rgba(0, 0, 0, 0.5);
border-radius: 3px;
line-height:120px;
text-align:center;
}
.img_thumb img {
vertical-align: middle;
}
- 1. CSS vertical alinea el centro en círculos
- 2. imagen vertical-align en div
- 3. cómo mostrar la imagen en el centro de un div
- 4. cómo la posición de la imagen en el centro/centro tanto vertical como horizontalmente
- 5. ¿Cómo se alinea la altura de línea en el centro del texto?
- 6. Centro alinea texto "span" dentro de un div
- 7. CSS Alineación vertical de texto al centro de la imagen
- 8. centro imagen en div con desbordamiento oculto
- 9. Offset div del centro
- 10. bloques div del centro pero no en la última fila
- 11. Recortar imagen del centro PHP
- 12. ¿Cómo alinear verticalmente una imagen de tamaño desconocido al centro de un div?
- 13. html vertical alinea el texto dentro del botón de tipo de entrada
- 14. Imagen de alineación vertical dentro del div principal con css
- 15. UIButton imagen personalizada tamaño fijo con
- 16. Centro iTextSharp alinea objetos dentro del objeto Documento
- 17. Centro vertical del administrador de disposición de Java
- 18. ImageView que es un tamaño fijo, independientemente del tamaño de la imagen
- 19. Contenido del centro CSS dentro de div
- 20. alineación vertical de la imagen dentro de un div
- 21. ¿Cómo puedo poner una línea vertical en el centro de un div?
- 22. ¿Cómo puedo alinear el centro vertical de la imagen en un diseño lineal?
- 23. cómo alinear mi imagen en el centro del IOS horizontal
- 24. La imagen en el encabezado fijo de jquery se superpone al contenido hasta cambiar el tamaño del evento
- 25. CSS div fijo dentro del contenedor
- 26. ¿Contenido del centro div y fit?
- 27. Cambiar el tamaño de una imagen en función del tamaño del DIV en el que se encuentra con CSS?
- 28. El botón de radio no se alinea correctamente en el centro en jquery mobile versión 1.0?
- 29. Redimensionar/recortar/rellenar una imagen en un tamaño fijo
- 30. Tamaño fijo en lista
tuve una petición similar. Se encontró una solución [aquí] (http://www.vanseodesign.com/css/vertical-centering/). –