Come allineare un punto morto dell'immagine con bootstrap


207

Sto usando il framework bootstrap e sto cercando di centrare un'immagine centrata orizzontalmente senza successo.

Ho provato varie tecniche come la divisione del sistema a 12 griglie in 3 blocchi uguali, ad es

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

Qual è il metodo più semplice per centrare un'immagine rispetto alla pagina?


E a proposito. ti consigliamo di dare un'occhiata alla sezione "Offset di colonne". twitter.github.com/bootstrap/scaffolding.html#gridSystem
mind85

Qualcuno ha segnalato questo come non una risposta, e sono d'accordo. Aggiungi questo come commento e la tua risposta verrà eliminata a breve.
martedì

1
Se hai img-responsiveclasse sul tuo imgtag, l'immagine potrebbe non essere centrata. Vedi questa risposta SO per una spiegazione del perché l'uso dellacenter-blockclassebootstraprisolverà quel problema nel modo bootstrap.
cssyphus,

Se stai usando bootstrap, puoi farlo: stackoverflow.com/a/59469712/4654957
Diego Venâncio

Risposte:


271

Twitter Bootstrap v3.0.3 ha una classe: blocco centrale

Centra i blocchi di contenuti

Imposta un elemento da visualizzare: blocca e centra tramite margine. Disponibile come mixin e classe.

Ho solo bisogno di aggiungere una classe .center-blocknel imgtag, assomiglia a questo

<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>

In Bootstrap ha già una chiamata in stile CSS .center-block

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

Puoi vedere un campione da qui


1
il </div>tag di chiusura sul containerdiv sembra mancante. questo non funziona per me su v3.3.7
tarabyte

141

Il modo corretto di farlo è

<div class="row text-center">
  <img ...>
</div>

25
questo non ha funzionato per me quando lo uso su questo - startbootstrap.com/round-about .. ma aggiungendo una classe center-blockagli <img>elementi ha funzionato ..
Sumeet Pareek,

3
text-center non funzionerà su immagini con classe img-responsive ma il commento sopra (sul blocco centrale) risolve questo problema
trojan

Un'osservazione: in Bootstrap v3.1.0 è possibile centrare img-responsive nella colonna aggiungendo text-center alla colonna. Questo comportamento è stato risolto in v3.3.4. Molto noioso. Css fa schifo.
f470071,

dovresti invece usare il blocco centrale, come detto nei documenti: getbootstrap.com/css/#images-responsive
Nacho,

95

Aggiornamento 2018

La center-blockclasse non esiste più in Bootstrap 4 . Per centrare un'immagine in Bootstrap 4, usa mx-auto d-block...

<img src="..." class="mx-auto d-block"/>

6
Solo per aggiungere una piccola spiegazione a "Aggiornamento 2018": mx-auto imposta i margini sinistro e destro su auto; d-block sets display: block
Michael Moriarty

85

Aggiungi 'blocco centrale' all'immagine come classe - non sono necessari CSS aggiuntivi

<img src="images/default.jpg" class="center-block img-responsive"/>

8
Non sono sicuro del motivo per cui -1 - QUESTO È DI NUOVO LA MIGLIORE RISPOSTA! Utilizza la classe helper compilata in Bootstrap.
user2562923

4
In bootstrap 4, utilizzare mx-autoinvece dicenter-block
Quantum7

52

Bootstrap di Twitter ha una classe centrata: centrata sulla .paginazione

Ha funzionato per me fare:

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

Il css per la classe è:

.pagination-centered {
  text-align: center;
}

18
O forse .text-centerlezione?
trejder,

36

È possibile utilizzare quanto segue. Supporta Bootstrap 3.x sopra.

<img src="..." alt="..." class="img-responsive center-block" />

Grazie per questo. Proprio quello di cui avevo bisogno oggi.
Ryan Wilson,

28

Supponendo che non ci sia nient'altro a fianco dell'immagine, il modo migliore è usare text-align: centernel imggenitore:

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

modificare

Come menzionato nelle altre risposte, è possibile aggiungere la classe CSS bootstrap .text-centerall'elemento padre. Questo fa esattamente la stessa cosa ed è disponibile sia in v2.3.3 che in v3


Perfetto - Questo fa il lavoro. Ma dire che ho un elemento <ul> sotto l'immagine ... Questo non allinea il centro come previsto, c'è qualcosa che posso aggiungere? Grazie
Fixer

1
Da .row in una delle classi principali di Twitter Bootstrap. Consiglierei di definire una nuova classe come in questa pagina twitter.github.com/bootstrap/index.html con il masthead della classe.
battezza il

1
@Fixer <ul>Dovrebbe comunque allineare il centro: jsfiddle.net/N74N7/1 Ci deve essere altro codice CSS che lo influenza
My Head Hurts

abbiamo trascorso più di 2 o 3 ore e solo questa linea ... grazie!
alamin,

18

Per me va bene. prova ad usarecenter-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>

6

Ho bisogno dello stesso e qui ho trovato la soluzione:

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

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

e ai CSS:

[class*="span"].centred {
  margin-left: auto;
  margin-right: auto;
  float: none;
}

Penso che le persone bootstrap debbano aggiungerlo al loro css
Muhammad Ahsan,

Ciao e grazie! Sto usando Bootstrap v3 ora. Ho aggiunto questo al mio div contenitore img, quindi ho dovuto specificare la larghezza esatta (almeno) per il mio div per far funzionare le cose. Se non si dispone di un contenitore o di dimensioni dell'immagine variabili, aggiungere questa classe all'immagine.
Inan,

1

È possibile utilizzare la proprietà margin con la classe img bootstrap.

.name-of-class .img-responsive { margin: 0 auto; }

1

Sembra che potremmo usare una nuova funzionalità HTML5 se la versione del browser non è un problema:

nei file HTML:

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

E nel file CSS, scriviamo:

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

E così il div potrebbe essere perfettamente al centro del browser.


3
La classe del tuo div si chiama .centerBloc e il tuo file css mostra body.loadingDiv ...
Martin

Risolto ora @Martin
dtechplus il

0

Dovresti usare

<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;
        }
}

0

Sto usando la justify-content-centerclasse per una riga all'interno di un contenitore. Funziona bene con Bootstrap 4.

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

0

Ho creato questo e aggiunto a Site.css.

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

-3

È possibile modificare il CSS della soluzione precedente come di seguito:

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

Questo dovrebbe centrare anche tutti gli elementi nel genitore div.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.