Esta es probablemente una pregunta estúpida, pero dado que las formas habituales de alineación central de una imagen no funcionan, pensé en preguntar. ¿Cómo puedo centrar, alinear (horizontalmente) una imagen dentro de su contenedor div?
Aquí está el HTML y CSS. También he incluido el CSS para los otros elementos de la miniatura. Se ejecuta en orden descendente, por lo que el elemento más alto es el contenedor de todo y el más bajo está dentro de todo.
#thumbnailwrapper {
color: #2A2A2A;
margin-right: 5px;
border-radius: 0.2em;
margin-bottom: 5px;
background-color: #E9F7FE;
padding: 5px;
border: thin solid #DADADA;
font-size: 15px
}
#artiststhumbnail {
width: 120px;
height: 108px;
overflow: hidden;
border: thin solid #DADADA;
background-color: white;
}
#artiststhumbnail:hover {
left: 50px
}
<!--link here-->
<a href="NotByDesign">
<div id="thumbnailwrapper">
<a href="NotByDesign">
<!--name here-->
<b>Not By Design</b>
<br>
<div id="artiststhumbnail">
<a href="NotByDesign">
<!--image here-->
<img src="../files/noprofile.jpg" height="100%" alt="Not By Design" border="1" />
</a>
</div>
<div id="genre">Punk</div>
</div>
De acuerdo, he agregado el marcado sin el PHP, por lo que debería ser más fácil de ver. Ninguna de las soluciones parece funcionar en la práctica. El texto en la parte superior e inferior no puede estar centrado y la imagen debe estar centrada dentro de su contenedor div. El contenedor tiene un desbordamiento oculto, así que quiero ver el centro de la imagen, ya que normalmente es donde está el foco.
img
Están sujetos atext-align: center
menos quedisplay
se hayan modificado.text-align: center
img
estaba incluido en ela
. Soy tonto.Respuestas:
CSS Guy sugiere lo siguiente:
Entonces, traduciendo, tal vez:
Aquí está mi solución en: http://jsfiddle.net/marvo/3k3CC/2/
fuente
margin: auto
dependen del elemento contenedor que tenga un valor de ancho designado.img
creo que necesitaría un ancho definido de todos modos para tener algún efectoauto
.CSS flexbox puede hacerlo con
justify-content: center
el elemento primario de la imagen. Para preservar la relación de aspecto de la imagen, agréguelaalign-self: flex-start;
.HTML
CSS
Salida:
Mostrar fragmento de código
fuente
align-items
para centrar verticalmente. Las diversas soluciones de margen no funcionan para mí porque el elemento a centrar no tiene atributos de ancho y alto.align-self
al elemento de imagen como este jsfiddle.net/3fgvkurdAcabo de encontrar esta solución a continuación en la página W3 CSS y respondió mi problema.
Fuente: http://www.w3.org/Style/Examples/007/center.en.html
fuente
max-width: 100%; max-height: 100%;
para redimensionar la imagen si la pantalla es más pequeña que la imagen, pero en este caso no está centrada. Cualquier sugerencia sobre cómo centrarse con esos dos atributos aplicadosEsto también lo haría
fuente
text-align:center;
ymargin:0 5px;
? He añadido una;
Lo mejor que he encontrado (que parece funcionar en todos los navegadores) para centrar una imagen, o cualquier elemento, horizontalmente es crear una clase CSS e incluir los siguientes parámetros:
CSS
Luego puede aplicar la clase CSS que creó a su etiqueta de la siguiente manera:
HTML
También puede alinear el CSS en sus elementos haciendo lo siguiente:
... pero no recomendaría escribir CSS en línea porque entonces tienes que hacer múltiples cambios en todas tus etiquetas usando tu código CSS de centrado si alguna vez quieres cambiar el estilo.
fuente
Esto es lo que terminé haciendo:
Lo que limitará la altura de la imagen a 600 px y centrará horizontalmente (o reducirá el tamaño si el ancho principal es más pequeño) al contenedor principal, manteniendo las proporciones.
fuente
Voy a arriesgarme y decir que lo siguiente es lo que buscas.
Tenga en cuenta que lo siguiente, creo, se omitió accidentalmente en la pregunta (ver comentario):
Entonces, lo que necesitas es:
http://jsfiddle.net/userdude/XStjX/3/
fuente
Para centrar una imagen horizontalmente, esto funciona:
fuente
Agregue esto a su CSS:
Simplemente haciendo referencia a un elemento hijo que en ese caso es la imagen.
fuente
Ponga un relleno de píxel igual para izquierda y derecha:
fuente
Pon la foto dentro de a
newDiv
. Haga que el ancho del contenedor seadiv
igual que la imagen. Aplicarmargin: 0 auto;
a lanewDiv
. Eso debería centrar eldiv
dentro del contenedor.fuente
Usar posicionamiento. Lo siguiente funcionó para mí ... (Centrado horizontal y verticalmente)
Con zoom al centro de la imagen (la imagen llena el div):
Sin acercar al centro de la imagen (la imagen no llena el div):
fuente
puedes alinear tu contenido usando flex box con un código mínimo
HTML
CSS
js fiddle link https://jsfiddle.net/7un6ku2m/
fuente
Centrar una imagen en un div
fuente
Lo he intentado de varias maneras. Pero de esta manera funciona perfectamente para mí
fuente
Una forma receptiva de centrar una imagen puede ser así:
fuente
Si tiene que hacer esto en línea (como cuando usa un cuadro de entrada),
aquí hay un truco rápido que funcionó para mí: rodee su (enlace de imagen en este caso)
en un
div
constyle="text-align:center"
fuente
fuente
<div>
o<section>
tanto vertical como horizontalmente para todos los dispositivos, ¡simplemente puede usar este código de estilo!sí, el código como este funciona bien
pero solo para recordarte, el estilo de la imagen
entonces el código final será como Ejemplo
fuente
Usar la propiedad flex en el contenedor es la respuesta correcta para poder centrar tanto vertical como horizontalmente.
La respuesta principal aquí NO funciona para centrar un elemento verticalmente, solo horizontalmente.
fuente
fuente