Чуйне зображення вирівнювання центрального завантажувача 3


423

Я роблю каталог за допомогою Bootstrap 3. Коли відображаються на планшетах, зображення виробів виглядають некрасиво через їх невеликий розмір (500x500) та ширину 767 пікселів у браузері. Я хочу поставити зображення в центр екрану, але я чомусь не можу. Хто буде допомагати вирішити проблему?

Знімок екрана частини сторінки продукту з продуктом не в центрі під заголовком


5
Мені подобається дизайн вашого сайту та продукти - приємна робота:)
Bojangles

7
Ще один приклад "Чому нам потрібен код місця в тілі питань".
LEQADA

Відповіді:


572

Якщо ви використовуєте Bootstrap v3.0.1 або новішої, вам слід скористатися цим рішенням . Він не перекриває стилі Bootstrap зі спеціальним CSS, а натомість використовує функцію Bootstrap.

Моя оригінальна відповідь наведена нижче для нащадків


Це приємно просте виправлення. Оскільки .img-responsiveз програми Bootstrap вже встановлено display: block, ви можете використовувати margin: 0 autoдля центрування зображення:

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

35
Напевно, краще створити новий клас за допомогою margin: 0 auto, а не змінювати .img-чуйний.
knite

4
Це думка, хоча особисто я ніде не можу придумати, я б хотів, щоб чуйне зображення було не в центрі, особливо з цим дизайном. Все залежить від випадку використання, і що буде в майбутньому
Bojangles

Будь ласка , дивіться цю відповідь , якщо ви використовуєте Bootstrap v4 або вище: stackoverflow.com/a/43293957/4102515
snorberhuis

1156

У .center-blockTwitter Bootstrap 3 є клас ( оскільки v3.0.1 ), тому використовуйте:

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

27
Це має бути прийнятою відповіддю, оскільки для його використання не потрібно додавати жодних CSS.
user2602152

16
class="img-responsive" style="margin: 0 auto;"працює для мене class="img-responsive center-block"не (bootstrap 3, але версія кілька місяців)
mxro

9
Вирівнювання центру не працює, коли використовується чутливий img.
Ісмаїл

1
@DHlavaty, чи можете ви пояснити різницю між використанням .img-чутливого AND .center-блоку та просто використанням .img-respovable з автоматичним відривом, як пропонує прийнята відповідь? чи є один метод більш надійним?
користувач137717

1
Можливо, ви не хочете використовувати це, якщо ваше зображення може бути натиснуто. Тобто, якщо він загорнутий всередині <a href="#"> </a>пари, область, яку можна натиснути, розшириться на повну ширину контейнера, що додається, що може бути трохи більше, ніж ваше зображення. Це може заплутати користувачів, які натискають на те, що, на їхню думку, є «порожнім» простором.
CXJ

108

Додайте до класу лише клас center-block, це працює і з Bootstrap 4:

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

Примітка: center-blockпрацює навіть при img-responsiveвикористанні


6
Найкраща відповідь, але занижена. Ось чому ви використовуєте рамку!
Baumannzone

Тому. Фантастичний. Дякую
AndrewLeonardi

Її робота .. Дякую
Dhiren Patel

31

Просто використовуйте .text-centerклас, якщо ви використовуєте Bootstrap 3.

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

Примітка. Це не працює з реагуванням на img-response


1
Питання проimg-responsive
Олексій Косов

Для додавання img-центру додайте img-центр (перевірено на 3.3.6) для тих, хто може бачити це під час пошуку в Google
DardanM

10

Це повинно зосереджувати зображення і робити його чуйним.

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

6

Я б запропонував більш "абстрактну" класифікацію. Додайте новий клас "img-center", який можна використовувати в поєднанні з .img-чутливим класом:

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

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

2
Чому display: table? Цього вже display: blockдостатньо, щоб приступити margin: 0 autoдо роботи
Bojangles

3

img-responsiveЗ цим класом стилю можна працювати, не впливаючи на інші зображення.

Ви можете передувати цьому тегу за допомогою розділу id / div id / class, щоб визначити порядок, в якому це imgвкладено. Цей звичай img-responsiveпрацює лише в цій області.

Припустимо, у вас HTML-область визначена як:

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

Тоді ваш CSS може бути:

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

Примітка. Ця відповідь відповідає потенційному впливу зміни img-responsiveв цілому. Звичайно, center-blockце найпростіше рішення.


Ця відповідь недооцінена, перенесення зображення в клас рядків має вирішальне значення в центрі зображення, коли під зображенням є текст.
Glenn Plas

3

Спробуйте цей код, він буде працювати і для невеликих піктограм із завантажувальним пристроєм 4, оскільки не існує класу центрального блоку - завантажувальний 4, тому спробуйте цей метод буде корисним. Ви можете змінити положення зображення, встановивши .col-md-12на .col-md-8або .col-md-4, це до вас.

<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

Спробуйте це:

.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

Просто помістіть усі мініатюри зображень всередину рядків / рядків типу:

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

і все буде добре працювати!


2

Щоб додати до вже відповідей, img-responsiveу поєднанні з img-thumbnailбуде встановлено display: blockзначення display: inline block.



0

Ви можете виправити це, визначаючи маржу: 0 авто

або ви можете також використовувати col-md-offset

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

Більш точним способом, застосованим до всіх об'єктів Booostrap, використовуючи лише стандартні класи, було б не встановлювати верхній і нижній поля (оскільки зображення може успадковувати їх від батьківського), тому я завжди використовую:

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

Я також створив для цього історію, тож якщо якісь зміни будуть застосовані через помилки, оновлена ​​версія завжди буде тут: https://gist.github.com/jdrda/09a38bf152dd6a8aff4151c58679cc66


0

На сьогодні найкраще рішення прийняти <img class="center-block" ... />. Але ніхто не згадав, як це center-blockпрацює.

Візьмемо для прикладу Bootstrap v3.3.6:

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

Значенням за замовчуванням dispalyдля <img>є inline. Значення blockвідображатиме елемент як елемент блоку (як <p>). Він починається з нового рядка і займає всю ширину. Таким чином, два налаштування поля дозволяють зображенню залишатися посередині горизонтально.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.