Duyarlı görüntü hizalama merkezi önyükleme 3


423

Bootstrap 3 kullanarak bir katalog yapıyorum. Tabletlerde görüntülendiğinde, ürün resimleri küçük boyutlarından (500x500) ve tarayıcıdaki 767 piksel genişliğinden dolayı çirkin görünüyor. Görüntüyü ekranın ortasına koymak istiyorum, ama nedense yapamıyorum. Kim sorunu çözmeye yardımcı olacak?

Ürün başlığının altına ortalanmamış bir ürün sayfasının bir bölümünün ekran görüntüsü


5
Sitenizin ve ürünlerinizin tasarımını seviyorum - iyi iş:)
Bojangles

7
"Soru koduna neden yer koduna ihtiyacımız var?"
LEQADA

Yanıtlar:


572

Bootstrap v3.0.1 veya üstünü kullanıyorsanız, bunun yerine bu çözümü kullanmalısınız. Bootstrap'ın stillerini özel CSS ile geçersiz kılmaz, bunun yerine bir Bootstrap özelliği kullanır.

Orijinal cevabım aşağıda gelecek kuşaklar için gösteriliyor


Bu hoş bir düzeltme. .img-responsiveBootstrap zaten ayarlanmış olduğundan , görüntüyü ortalamak için display: blockkullanabilirsiniz margin: 0 auto:

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

35
Muhtemelen margin: 0 auto.img-duyarlı değiştirmek yerine, yeni bir sınıf oluşturmak daha iyidir.
knite

4
Bu bir düşünce, kişisel olarak hiçbir yerde düşünemesem de, özellikle bu tasarımda merkezli olmayan duyarlı bir görüntü istiyorum. Her şey kullanım durumuna ve gelecekte ne olacağına bağlı
Bojangles

Bootstrap v4 veya daha
yenisini

1156

.center-blockTwitter Bootstrap 3'te ( v3.0.1'den beri ) sınıf var, bu yüzden şunu kullanın:

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

27
Kullanmak için herhangi bir CSS eklemenize gerek olmadığından, bu kabul edilen cevap olmalıdır.
user2602152

16
class="img-responsive" style="margin: 0 auto;"benim için çalışıyor class="img-responsive center-block"(bootstrap 3, ancak birkaç aylık bir sürüm)
mxro

9
İmg-duyarlı kullanılan merkez hizalama çalışmıyor.
Ismael

1
@DHlavaty, kabul edilen yanıtın önerdiği gibi .img-duyarlı VE .center-block ile sadece .img-duyarlı kullanma arasındaki farkı açıklayabilir misiniz? bir yöntem daha sağlam mı?
Kullanıcı137717

1
Resminizin tıklanabilir olması gerekiyorsa bunu kullanmak istemeyebilirsiniz. Yani, bir <a href="#"> </a>çiftin içine sarılırsa , tıklanabilir alan, kapsayıcı kabınızın tam genişliğine kadar genişler ve bu da görüntünüzden biraz daha büyük olabilir. Bu, "boş" alan olduğunu düşündüklerini tıklayan kullanıcıların kafasını karıştırabilir.
CXJ

108

center-blockBir görüntüye yalnızca sınıfı ekleyin , bu Bootstrap 4 ile de çalışır:

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

Not: kullanıldığında center-blockbile çalışırimg-responsive


6
En iyi yanıt, ama önemsiz. Bu yüzden bir çerçeve kullanıyorsunuz!
Baumannzone

Yani. Fantastik. Teşekkür ederim
AndrewLeonardi

Çalışması ... Teşekkürler
Dhiren Patel


10

Bu görüntüyü ortalamalı ve duyarlı hale getirmelidir.

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

6

Daha "soyut" bir sınıflandırma öneririm. .İmg-Responsive sınıfıyla birlikte kullanılabilecek yeni bir "img-center" sınıfı ekleyin:

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

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

2
Neden display: table? Zaten işe display: blockbaşlamak için yeterlimargin: 0 auto
Bojangles

3

img-responsiveBu stil sınıfıyla diğer görüntüleri etkilemeden yine de çalışabilirsiniz .

İçine yerleştirildiği bir sırayı tanımlamak için bu etiketin önüne id / div id / class bölümü kullanabilirsiniz img. Bu özel img-responsiveyalnızca bu alanda çalışır.

Diyelim ki şu şekilde tanımlanmış bir HTML alanınız var:

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

Ardından, CSS'niz şunlar olabilir:

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

Not: Bu cevap, img-responsivebir bütün olarak değiştirmenin potansiyel etkisi ile ilgilidir . Tabii ki, center-blocken basit çözüm.


Bu cevap takdir edilmektedir, görüntünün satır sınıfına sarılması, görüntünün altında bir metin olduğunda görüntüyü ortalamak için çok önemlidir.
Glenn Plas

3

Bu blok deneyin bootstrap 4 ile küçük simgeler için de çalışacaktır çünkü hiçbir center-block sınıfı bootstrap 4 olduğundan, bu yöntemi deneyin yararlı olacaktır. Sen ayarlayarak görüntünün konumunu değiştirebilirsiniz .col-md-12için .col-md-8ya .col-md-4da sen kadar var.

<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

Bunu dene:

.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

Tüm görüntü küçük resimlerini aşağıdaki gibi bir satır / col div öğesine yerleştirin:

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

ve her şey yoluna girecek!


2

Daha önce verilen cevaplara eklemek için, img-responsiveile birlikte img-thumbnailayarlanmış display: blockolarak ayarlanacaktır 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

Kenar boşluğunu tanımlayarak düzeltebilirsiniz: 0 otomatik

veya col-md-offset'i de kullanabilirsiniz

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

Yalnızca standart sınıfları kullanan tüm Booostrap nesnelerine uygulanan daha kesin yol, üst ve alt kenar boşluklarını (görüntü üst öğeden bu öğeleri devralabilir gibi) ayarlamak değil, bu yüzden her zaman kullanıyorum:

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

Bunun için bir Gist yaptım, bu nedenle herhangi bir hata nedeniyle herhangi bir değişiklik uygulanacaksa, güncelleme sürümü her zaman burada olacaktır: https://gist.github.com/jdrda/09a38bf152dd6a8aff4151c58679cc66


0

Şimdiye kadar kabul etmek için en iyi çözüm gibi görünüyor <img class="center-block" ... />. Ama kimse nasıl center-blockçalıştığını söylemedi.

Örneğin Bootstrap v3.3.6'yı alın:

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

Varsayılan değeri dispalyiçin <img>ise inline. Değer block, bir öğeyi bir blok öğesi (gibi <p>) olarak görüntüler. Yeni bir satırda başlar ve tüm genişliği kaplar. Bu şekilde, iki kenar boşluğu ayarı görüntünün yatay olarak ortada kalmasını sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.