Как выровнять мертвую точку изображения с помощью начальной загрузки

207

Я использую среду начальной загрузки и пытаюсь получить изображение по центру по горизонтали без успеха ..

Я пробовал различные методы, такие как разбиение системы 12 сеток на 3 равных блока, например

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

Какой самый простой способ получить изображение по центру страницы?

фиксаж
источник
И кстати. Возможно, вы захотите взглянуть на раздел «Смещение колонн». twitter.github.com/bootstrap/scaffolding.html#gridSystem
mind85
Кто-то пометил это как не ответ, и я согласен. Пожалуйста, добавьте это как комментарий, и ваш ответ будет удален в ближайшее время.
tckmn
1
Если img-responsiveв вашем imgтеге есть класс , изображение может не центрироваться. Посмотрите этот SO-ответ для объяснения того, почему использованиеcenter-blockклассаначальной загрузкирешит эту проблему путем начальной загрузки.
cssyphus
Если вы используете загрузчик, вы можете сделать это: stackoverflow.com/a/59469712/4654957
Диего Венансио

Ответы:

271

Twitter Bootstrap v3.0.3 имеет класс: центральный блок

Центрировать блоки контента

Установите отображаемый элемент: блок и центр с помощью поля. Доступный как mixin и класс.

Просто нужно добавить класс .center-blockв imgтег, выглядит так

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

В Bootstrap уже есть вызов в стиле css .center-block

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

Вы можете увидеть образец здесь

user3098434
источник
1
закрывающий </div>тег на containerэлементе div выглядит отсутствующим. это не работает для меня на v3.3.7
тарабайт
141

Правильный способ сделать это

<div class="row text-center">
  <img ...>
</div>
fabiangebert
источник
25
это не сработало для меня при использовании этого на этом - startbootstrap.com/round-about .. но добавление класса center-blockк <img>элементам сработало ..
Sumeet Pareek,
3
text-center не будет работать на изображениях с img-отзывчивым классом, но комментарий выше (о center-block) решает эту проблему
троян
Замечание: в Bootstrap v3.1.0 можно центрировать img-отзывчивый в столбце, добавив text-center к столбцу. Это поведение нарушено в v3.3.4. Очень надоедливый. CSS отстой.
f470071
вместо этого вы должны использовать центральный блок, как сказано в документации: getbootstrap.com/css/#images-responsive
Nacho
95

Обновление 2018

Не center-blockкласс больше не существует в Bootstrap 4 . Чтобы центрировать изображение в Bootstrap 4, используйте mx-auto d-block...

<img src="..." class="mx-auto d-block"/>
Zim
источник
6
Просто добавим небольшое пояснение к «Обновлению 2018»: mx-auto устанавливает для левого и правого поля значение auto; D-блок устанавливает дисплей: блок
Майкл Мориарти
85

Добавьте 'center-block' к изображению как класс - дополнительные CSS не требуются

<img src="images/default.jpg" class="center-block img-responsive"/>
adswebwork
источник
8
Не уверен, почему -1 - ЭТО САМЫЙ ЛУЧШИЙ ОТВЕТ! Он использует встроенный вспомогательный класс в Bootstrap.
user2562923
4
В начальной загрузке 4 используйте mx-autoвместоcenter-block
Quantum7
52

У Twitter начальной загрузки есть класс, центр которого: .pagination-центрирован

Это сработало для меня, чтобы сделать:

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

CSS для класса:

.pagination-centered {
  text-align: center;
}
Дэвид Сильва Смит
источник
18
Или, может быть, .text-centerкласс?
Трейдер
36

Вы можете использовать следующее. Он поддерживает Bootstrap 3.x выше.

<img src="..." alt="..." class="img-responsive center-block" />
Дулит Де Коста
источник
Спасибо за это. Как раз то, что мне было нужно сегодня.
Райан Уилсон
28

Предполагая, что рядом с изображением больше ничего нет, лучше всего использовать text-align: centerв imgродительском:

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

редактировать

Как упоминалось в других ответах, вы можете добавить класс начальной загрузки CSS .text-centerк родительскому элементу. Это делает то же самое и доступно как в v2.3.3, так и в v3

Моя голова болит
источник
Идеальный - это делает работу. Но скажем, у меня есть элемент <ul> под изображением ... Это не выравнивает центр, как ожидалось, я могу что-нибудь добавить? Спасибо
Fixer
1
Начиная с .row в одном из основных классов в твиттере начальной загрузки. Я бы рекомендовал определить новый класс, как на этой странице twitter.github.com/bootstrap/index.html с заголовком класса.
baptme
1
@Fixer The <ul>должен по-прежнему выравнивать центр: jsfiddle.net/N74N7/1 Должен быть другой CSS-код, влияющий на него
My Head Hurts
потратил больше 2-х или 3-х часов и только эту строчку ... спасибо!
аламин
18

Работает для меня. попробуйте использоватьcenter-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

Мне нужно то же самое, и здесь я нашел решение:

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

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

и в CSS:

[class*="span"].centred {
  margin-left: auto;
  margin-right: auto;
  float: none;
}
Шив
источник
Я думаю, что люди начальной загрузки должны добавить это к их css
Мухаммед Ахсан
Привет и спасибо! Я использую Bootstrap v3 сейчас. Я добавил это в мой div контейнера img, поэтому мне пришлось указать точную ширину (по крайней мере) для моего div, чтобы все работало. Если у вас нет контейнера или изображения разных размеров, добавьте этот класс к своему изображению.
Инан
1

Вы можете использовать свойство margin с классом начальной загрузки.

.name-of-class .img-responsive { margin: 0 auto; }
Венкатеш Раджаветривел
источник
1

Кажется, мы могли бы использовать новую функцию HTML5, если версия браузера не является проблемой:

в файлах HTML:

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

И в файле CSS мы пишем:

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

И поэтому div может быть идеально в центре браузера.

Laurent
источник
3
Класс вашего div называется .centerBloc, а ваш файл css показывает body.loadingDiv ...
Martin
Исправлено @Martin
dtechplus
0

Вы должны использовать

<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;
        }
}
ed3d
источник
0

Я использую justify-content-centerкласс для строки в контейнере. Хорошо работает с Bootstrap 4.

<div class="container-fluid">
  <div class="row justify-content-center">
   <img src="logo.png" />
  </div>
</div>
bassment
источник
0

Я создал это и добавил в Site.css.

.img-responsive-center {
    display: block;
    height: auto;
    max-width: 100%;
    margin-left:auto;
    margin-right:auto;
}
Крис Катиньяни
источник
-3

Вы можете изменить CSS предыдущего решения, как показано ниже:

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

Это должно также сосредоточить все элементы в родительском divэлементе.

Nandu
источник