Responsive Image Align Center Bootstrap 3


423

Ich erstelle einen Katalog mit Bootstrap 3. Wenn sie auf Tablets angezeigt werden, sehen die Produktbilder aufgrund ihrer geringen Größe (500 x 500) und einer Breite von 767 Pixel im Browser hässlich aus. Ich möchte das Bild in die Mitte des Bildschirms stellen, kann es aber aus irgendeinem Grund nicht. Wer wird helfen, das Problem zu lösen?

Screenshot eines Teils einer Produktseite, wobei das Produkt nicht unter der Überschrift zentriert ist


5
Ich mag das Design Ihrer Website und Produkte - gute Arbeit:)
Bojangles

7
Ein weiteres Beispiel für "Warum wir Code in den Fragetext einfügen müssen".
LEQADA

Antworten:


572

Wenn Sie Bootstrap v3.0.1 oder höher verwenden, sollten Sie stattdessen diese Lösung verwenden. Es überschreibt die Bootstrap-Stile nicht mit benutzerdefiniertem CSS, sondern verwendet stattdessen eine Bootstrap-Funktion.

Meine ursprüngliche Antwort ist unten für die Nachwelt gezeigt


Dies ist eine angenehm einfache Lösung. Da .img-responsivevon Bootstrap bereits festgelegt wurde display: block, können Sie margin: 0 autodas Bild zentrieren:

.product .img-responsive {
    margin: 0 auto;
}

35
Es ist wahrscheinlich besser, eine neue Klasse mit zu erstellen margin: 0 auto, als .img-responsive zu ändern.
Stricken

4
Das ist ein Gedanke, obwohl ich mir persönlich nirgendwo vorstellen kann, dass ich ein reaktionsfreudiges Bild haben möchte, das nicht zentriert ist, insbesondere bei diesem Design. Es hängt alles vom Anwendungsfall ab und davon, was in Zukunft passieren wird
Bojangles

Bitte sehen Sie diese Antwort, wenn Sie Bootstrap v4 oder höher verwenden: stackoverflow.com/a/43293957/4102515
snorberhuis

1156

Es gibt eine .center-blockKlasse in Twitter Bootstrap 3 ( seit v3.0.1 ), also verwenden Sie:

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

27
Dies sollte die akzeptierte Antwort sein, da Sie kein CSS hinzufügen müssen, um sie zu verwenden.
user2602152

16
class="img-responsive" style="margin: 0 auto;"funktioniert bei mir class="img-responsive center-block"nicht (bootstrap 3, aber eine version ein paar
monate

9
Das Ausrichtungszentrum funktioniert nicht, wenn img-responsive verwendet wird.
Ismael

1
@DHlavaty Kannst du den Unterschied zwischen der Verwendung von .img-responsive UND .center-block und der Verwendung von .img-responsive mit einem automatischen Rand erklären, wie es die akzeptierte Antwort nahelegt? Ist eine Methode robuster?
user137717

1
Möglicherweise möchten Sie dies nicht verwenden, wenn Ihr Bild anklickbar sein soll. Das heißt, wenn es in ein <a href="#"> </a>Paar eingewickelt wird , wird der anklickbare Bereich auf die volle Breite des umschließenden Containers erweitert, der möglicherweise etwas größer als Ihr Bild ist. Dies kann Benutzer verwirren, die auf einen ihrer Meinung nach "leeren" Bereich klicken.
CXJ

108

Fügen Sie center-blockeinem Image nur die Klasse hinzu . Dies funktioniert auch mit Bootstrap 4:

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

Hinweis: Funktioniert center-blockauch bei img-responsiveVerwendung


6
Beste Antwort, aber unterschätzt. Deshalb verwenden Sie ein Framework!
Baumannzone

Damit. Fantastisch. Vielen Dank
AndrewLeonardi

Seine Arbeit .. Danke
Dhiren Patel

31

Verwenden .text-centerSie einfach class, wenn Sie Bootstrap 3 verwenden.

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

Hinweis: Dies funktioniert nicht mit img-responsive


1
Die Frage ist überimg-responsive
Alexey Kosov

Für img-responsive fügen Sie img-center (getestet am 3.3.6) für diejenigen hinzu, die dies bei Google-Suchen sehen könnten
DardanM

10

Dies sollte das Bild zentrieren und reaktionsfähig machen.

<img src="..." class="img-responsive" style="margin:0 auto;"/>

6

Ich würde eine "abstraktere" Klassifizierung vorschlagen. Fügen Sie eine neue Klasse "img-center" hinzu, die in Kombination mit der auf .img reagierenden Klasse verwendet werden kann:

// Center responsive images
.img-responsive.img-center {
  margin: 0 auto;
}

3
@media (max-width: 767px) {
   img {
     display: table;
     margin: 0 auto;
   }
}

2
Warum display: table? Es ist schon display: blockgenug, um margin: 0 autozur Arbeit zu kommen
Bojangles

3

Mit dieser Stilklasse können Sie weiterhin arbeiten, img-responsiveohne andere Bilder zu beeinträchtigen.

Sie können diesem Tag die Abschnitts-ID / Div-ID / Klasse voranstellen, um eine Reihenfolge zu definieren, in der diese imgverschachtelt ist. Dieser Brauch img-responsivefunktioniert nur in diesem Bereich.

Angenommen, Sie haben einen HTML-Bereich definiert als:

<section id="work"> 
    <div class="container">
        <div class="row">
            <img class="img-responsive" src="some_image.jpg">
        </div>
    </div>
</section>

Dann kann Ihr CSS sein:

section#work .img-responsive{
    margin: 0 auto;
}

Hinweis: Diese Antwort bezieht sich auf die möglichen Auswirkungen von Änderungen img-responsiveinsgesamt. Natürlich center-blockist die einfachste Lösung.


Diese Antwort wird unterschätzt. Das Umschließen des Bildes in die Zeilenklasse ist entscheidend für die Zentrierung des Bildes, wenn sich unter dem Bild ein Text befindet.
Glenn Plas

3

Versuchen Sie diesen Code, er funktioniert auch für kleine Symbole mit Bootstrap 4, da es keine Centerblock-Klasse für Bootstrap 4 gibt. Versuchen Sie diese Methode, es ist hilfreich. Sie können die Position des Bildes ändern , indem Sie .col-md-12auf .col-md-8oder setzen .col-md-4. Es liegt an Ihnen.

<div class="container">
       <div class="row">
          <div class="col-md-12">
            <div class="text-xs-center text-lg-center">
           <img src="" class="img-thumbnail">
           </div>
          </div>
       </div>
  </div>

3

Versuche dies:

.img-responsive{
    display: block;
    height: auto;
    max-width: 100%;
	  margin:0 auto;
}
.Image{
  background:#ccc;
  padding:30px;
}
<div class="Image">
  <img src="http://minisoft.com.bd/uploads/ourteam/rafiq.jpg" class="img-responsive" title="Rafique" alt="Rafique">
</div>


3

Fügen Sie einfach alle Miniaturbilder der Bilder wie folgt in eine Zeile / Spalte ein:

<div class="row text-center">
 <div class="col-12">
  # your images here...
 </div>
</div>

und alles wird gut funktionieren!


2

Um bereits auf die Antworten gegeben, das mit img-responsivemit in Kombination img-thumbnailgesetzt display: blockzu display: inline block.


2
<div class="col-md-12 text-center">
    <img class="img-responsive tocenter" />
</div>

.

<style>
   .tocenter {
    margin:0 auto;
    display: inline;
    }
</style>

0

Sie können dies beheben, indem Sie den Rand definieren: 0 auto

oder Sie können auch col-md-offset verwenden

<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<style>
.img-responsive{
margin:0 auto;
}
</style>
<body>

<div class="container">
  <h2>Image</h2>
<div class="row">
<div class="col-md-12">
  <p>The .img-responsive class makes the image scale nicely to the parent element (resize the browser window to see the effect):</p>                  
  <img src="http://www.w3schools.com/bootstrap/cinqueterre.jpg" class="img-responsive" alt="Cinque Terre" width="304" height="236"> 
</div>
</div>
</div>

</body>
</html>


0

Die genauere Methode, die auf alle Booostrap-Objekte angewendet wird, die nur Standardklassen verwenden, besteht darin, keine oberen und unteren Ränder festzulegen (da das Bild diese vom übergeordneten Objekt erben kann). Daher verwende ich immer:

.text-center .img-responsive {
    margin-left: auto;
    margin-right: auto;
}

Ich habe auch eine Zusammenfassung dafür erstellt. Wenn also aufgrund von Fehlern Änderungen vorgenommen werden, ist die Update-Version immer hier: https://gist.github.com/jdrda/09a38bf152dd6a8aff4151c58679cc66


0

Bisher scheint die beste zu akzeptierende Lösung zu sein <img class="center-block" ... />. Aber niemand hat erwähnt, wie es center-blockfunktioniert.

Nehmen Sie zum Beispiel Bootstrap v3.3.6:

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

Der Standardwert von dispalyfür <img>ist inline. Der Wert blockzeigt ein Element als Blockelement an (wie <p>). Es beginnt in einer neuen Zeile und nimmt die gesamte Breite ein. Auf diese Weise bleibt das Bild durch die beiden Randeinstellungen horizontal in der Mitte.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.