Адаптивный образ выравнивания по центру начальной загрузки 3

396

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

Изображение 106

  • 5
    Мне нравится дизайн вашего сайта и продуктов - хорошая работа :)
  • 7
    Другой пример «Почему нам нужно поместить код в тело вопроса».
Теги:
image
alignment

16 ответов

562
Лучший ответ

Если вы используете Bootstrap v3.0.1 или выше, вы должны использовать это решение. Он не переопределяет стили Bootstrap с пользовательским CSS, но вместо этого использует функцию Bootstrap.

Мой оригинальный ответ показан ниже для потомков


Это приятное решение. Поскольку .img-responsive из Bootstrap уже устанавливает display: block, вы можете использовать margin: 0 auto для центрирования изображения:

.product .img-responsive {
    margin: 0 auto;
}
  • 34
    Вероятно, лучше создать новый класс с margin: 0 auto , чем изменять .img-отзывчивый.
  • 4
    Это мысль, хотя лично я ни о чем не могу думать, я бы хотел, чтобы отзывчивое изображение не центрировалось, особенно с этим дизайном. Все зависит от варианта использования и того, что произойдет в будущем.
Показать ещё 8 комментариев
1056

Существует .center-block класс в Twitter Bootstrap 3 (Начиная с версии 3.0.1), поэтому используйте:

<img src="..." alt="..." class="img-responsive center-block" />
  • 87
    Не уверен, почему это не принятый ответ - он короткий, приятный и по сути.
  • 27
    Это должен быть принятый ответ, так как вам не нужно добавлять CSS для его использования.
Показать ещё 11 комментариев
92

Добавьте к изображению только center-block класса, это также работает с Bootstrap 4:

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

Примечание: center-block работает даже при использовании img-responsive

  • 6
    Лучший ответ, но недооцененный. Вот почему вы используете фреймворк!
  • 0
    Так. Фантастика. Спасибо
Показать ещё 1 комментарий
32

Просто используйте класс .text-center, если вы используете Bootstrap 3.

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

Примечание. Это не работает с img-отзывчивым

  • 0
    спасибо, это работает для меня.
  • 3
    это работает с img-responsive хотя?
Показать ещё 3 комментария
10

Это должно сосредоточить изображение и сделать его отзывчивым.

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

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

// Center responsive images
.img-responsive.img-center {
  margin: 0 auto;
}
  • 0
    Спасибо!!! это лучшее решение!
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

Вы все еще можете работать с img-responsive, не воздействуя на другие изображения этим классом стиля.

Вы можете предшествовать этому тегу с идентификатором/классом id/div раздела, чтобы определить порядок, в котором этот 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 - простейшее решение.

  • 0
    Этот ответ недооценивается, обтекание изображения в классе строк имеет решающее значение для центрирования изображения, когда под изображением находится текст.
2
<div class="col-md-12 text-center">
    <img class="img-responsive tocenter" />
</div>

.

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

Чтобы добавить к уже указанным ответам, наличие img-responsive в сочетании с img-thumbnail будет устанавливать display: block в display: inline block.

2
@media (max-width: 767px) {
   img {
     display: table;
     margin: 0 auto;
   }
}
  • 2
    Почему display: table ? Он уже display: block которого достаточно, чтобы получить margin: 0 auto для работы
1

Попробуйте этот код, он будет работать и для маленьких значков тоже с bootstrap 4, потому что нет класса центра-блока bootstrap 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>
0

Просто поместите все миниатюры изображений внутри разделов строки/столбца следующим образом:

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

и все будет хорошо!

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>). Он начинается с новой строки и занимает всю ширину. Таким образом, две настройки поля позволяют изображению оставаться в середине по горизонтали.

0

Более точный способ, применяемый ко всем объектам Booostrap с использованием стандартных классов, - это не устанавливать верхние и нижние поля (поскольку изображение может наследовать их от родителя), поэтому я всегда использую:

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

Я также создал Gist для этого, поэтому, если какие-либо изменения будут применены из-за каких-либо ошибок, версия обновления будет всегда здесь: https://gist.github.com/jdrda/09a38bf152dd6a8aff4151c58679cc66

0

Вы можете исправить это с помощью определяющего поля: 0 auto

или вы можете использовать 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>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню