Cómo alinear un punto muerto de imagen con bootstrap

207

Estoy usando el marco de arranque e intento obtener una imagen centrada horizontalmente sin éxito.

He probado varias técnicas, como dividir el sistema de 12 cuadrículas en 3 bloques iguales, por ejemplo

<div class="container">
    <div class="row">
      <div class="span4"></div>
      <div class="span4"><img src="logo.png" /></div>
      <div class="span4"></div>
    </div>
</div>

¿Cuál es el método más fácil para obtener una imagen centrada en relación con la página?

Fijador
fuente
Y por cierto. es posible que desee echar un vistazo a la sección "Columnas Offseting". twitter.github.com/bootstrap/scaffolding.html#gridSystem
mind85
Alguien ha marcado esto como una respuesta, y estoy de acuerdo. Agregue esto como un comentario y su respuesta se eliminará en breve.
tckmn
1
Si tiene img-responsiveclase en su imgetiqueta, la imagen puede no centrarse. Vea esta respuesta SO para obtener una explicación de por qué usar lacenter-blockclasebootstrapresolverá ese problema de la manera bootstrap.
cssyphus el
Si está usando bootstrap, puede hacerlo: stackoverflow.com/a/59469712/4654957
Diego Venâncio

Respuestas:

271

Twitter Bootstrap v3.0.3 tiene una clase: bloque central

Centrar bloques de contenido

Establezca un elemento para mostrar: bloque y centro a través del margen. Disponible como mixin y clase.

Solo necesito agregar una clase .center-blocken la imgetiqueta, se ve así

<div class="container">
  <div class="row">
    <div class="span4"></div>
    <div class="span4"><img class="center-block" src="logo.png" /></div>
    <div class="span4"></div>
  </div>
</div>

En Bootstrap ya tiene una llamada de estilo CSS .center-block

.center-block {
    display: block;
    margin-left: auto;
    margin-right: auto;
 }

Puedes ver una muestra desde aquí

usuario3098434
fuente
1
la </div>etiqueta de cierre en el containerdiv parece faltar. esto no funciona para mí en v3.3.7
tarabyte
141

La forma correcta de hacer esto es

<div class="row text-center">
  <img ...>
</div>
fabiangebert
fuente
25
esto no funcionó para mí cuando lo usé en esto - startbootstrap.com/round-about ... pero agregando una clase center-blocka los <img>elementos funcionó ...
Sumeet Pareek
3
text-center no funcionará en imágenes con la clase img-responsive pero el comentario anterior (sobre el bloque central) resuelve este problema
troyano
Una observación: en Bootstrap v3.1.0 es posible centrar img-responsive en la columna agregando text-center a la columna. Este comportamiento se rompe en v3.3.4. Muy molesto. Css apesta.
f470071
en su lugar, debe usar el bloque central, como se dice en los documentos: getbootstrap.com/css/#images-responsive
Nacho
95

Actualización 2018

La center-blockclase ya no existe en Bootstrap 4 . Para centrar una imagen en Bootstrap 4, use mx-auto d-block...

<img src="..." class="mx-auto d-block"/>
Zim
fuente
66
Solo para agregar una pequeña explicación a 'Actualización 2018': mx-auto establece los márgenes izquierdo y derecho en auto; d-block sets display: block
Michael Moriarty
85

Agregue 'center-block' a la imagen como clase: no se necesita CSS adicional

<img src="images/default.jpg" class="center-block img-responsive"/>
adswebwork
fuente
8
No estoy seguro de por qué el -1 - ¡ESTA ES DE lejos LA MEJOR RESPUESTA! Utiliza la clase de ayuda integrada en Bootstrap.
user2562923
44
En Bootstrap 4, use en mx-autolugar decenter-block
Quantum7
52

Twitter bootstrap tiene una clase que se centra: centrada en la paginación.

Me funcionó hacer:

<div class="row-fluid">
   <div class="span12 pagination-centered"><img src="header.png" alt="header" /></div>
</div>

El CSS para la clase es:

.pagination-centered {
  text-align: center;
}
David Silva Smith
fuente
18
O tal vez la .text-centerclase?
trejder
36

Podrías usar lo siguiente. Es compatible con Bootstrap 3.x arriba.

<img src="..." alt="..." class="img-responsive center-block" />
Dulith De Costa
fuente
Gracias por esto. Justo lo que necesitaba hoy.
Ryan Wilson
28

Asumiendo que no hay nada más junto a la imagen, la mejor manera es usar text-align: centeren el imgpadre:

.row .span4 {
    text-align: center;
}

Editar

Como se menciona en las otras respuestas, puede agregar la clase CSS de bootstrap .text-centeral elemento padre. Esto hace exactamente lo mismo y está disponible en v2.3.3 y v3

Me duele la cabeza
fuente
Perfecto, eso hace el trabajo. Pero digamos que tengo un elemento <ul> debajo de la imagen ... Esto no alinea el centro como se esperaba, ¿hay algo que pueda agregar? Gracias
Fixer
1
Desde .row en una de las clases principales en Twitter Bootstrap. Recomendaría definir una nueva clase como en esta página twitter.github.com/bootstrap/index.html con el encabezado de clase.
Baptme
1
@Fixer El <ul>centro aún debe alinearse: jsfiddle.net/N74N7/1 Debe haber otro código CSS que lo afecte
Mi cabeza duele el
Pasé más de 2 o 3 horas y solo esta línea ... ¡gracias!
Alamin
18

Funciona para mi. intenta usarcenter-block

<div class="container row text-center">
    <div class="row">
      <div class="span4"></div>
      <div class="span4"><img class="center-block" src="logo.png" /></div>
      <div class="span4"></div>
    </div>
</div>
Leroy Gumede
fuente
6

Necesito lo mismo y aquí encontré la solución:

https://stackoverflow.com/a/15084576/1140407

<div class="container">
  <div class="row">
    <div class="span9 centred">
      This div will be centred.
    </div>
  </div>
</div>

y a CSS:

[class*="span"].centred {
  margin-left: auto;
  margin-right: auto;
  float: none;
}
Shiv
fuente
Creo que la gente de bootstrap necesita agregarlo a su CSS
Muhammad Ahsan
Hola y gracias Estoy usando Bootstrap v3 ahora. Agregué esto a mi div contenedor img, así que tuve que especificar el ancho exacto (al menos) para que mi div haga que las cosas funcionen. Si no tiene contenedor o tamaños de imagen variables, agregue esta clase a su imagen.
Inan
1

Puede usar la propiedad de margen con la clase bootstrap img.

.name-of-class .img-responsive { margin: 0 auto; }
Venkatesh Rajavetrivel
fuente
1

Parece que podríamos usar una nueva función HTML5 si la versión del navegador no es un problema:

en archivos HTML:

<div class="centerBloc">
  I will be in the center
</div>

Y en el archivo CSS, escribimos:

body .centerBloc {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

Y así, el div podría estar perfectamente centrado en el navegador.

Laurent
fuente
3
La clase de su div se llama .centerBloc y su archivo css muestra body.loadingDiv ...
Martin
Corregido ahora @Martin
dtechplus
0

Deberías usar

<div class="row fluid-img">
  <img class="col-lg-12 col-xs-12" src="src.png">
</div>

.fluid-img {
    margin: 60px auto;
}

@media( min-width: 768px ){
        .fluid-img {
            max-width: 768px;
        }
}
@media screen and (min-width: 768px) {
        .fluid-img {
            padding-left: 0;
            padding-right: 0;
        }
}
ed3d
fuente
0

Estoy usando justify-content-centerclass para una fila dentro de un contenedor. Funciona bien con Bootstrap 4.

<div class="container-fluid">
  <div class="row justify-content-center">
   <img src="logo.png" />
  </div>
</div>
bajista
fuente
0

Creé esto y lo agregué a Site.css.

.img-responsive-center {
    display: block;
    height: auto;
    max-width: 100%;
    margin-left:auto;
    margin-right:auto;
}
Chris Catignani
fuente
-3

Puede cambiar el CSS de la solución anterior de la siguiente manera:

.container, .row { text-align: center; }

Esto debería centrar todos los elementos en el padre divtambién.

Nandu
fuente