Центрировать изображение по вертикали и горизонтали в сетке Bootstrap

Мне сложно понять, как центрировать изображение по вертикали и горизонтали. По сути, у меня есть два ряда изображений, все они имеют ширину 150, но разную высоту.

CSS

.image-center {
  display: inline-block;
  vertical-align: middle;
  position: relative;
}

HTML

<div class = "row">
        <div class = "col">
            <img class = "center-block image-center" width = "150" src = "imagery/1.png"/>
        </div>
        <div class = "col">
            <img class = "center-block image-center" width = "150" src = "imagery/2.png"/>
        </div>            <div class = "col">
            <img class = "center-block image-center" width = "150" src = "imagery/3.png"/>
        </div>            <div class = "col">
            <img class = "center-block image-center" width = "150" src = "imagery/4.png"/>
        </div>
    </div>

    <div class = "row">
        <div class = "col">
            <img class = "center-block" width = "150" src = "imagery/5.png"/>
        </div>            <div class = "col">
            <img class = "center-block" width = "150" src = "imagery/6.png"/>
        </div>            <div class = "col">
            <img class = "center-block" width = "150" src = "imagery/7.png"/>
        </div>            <div class = "col">
            <img class = "center-block" width = "150" src = "imagery/8.png"/>
        </div>
    </div>

Не могли бы вы добавить больше кода css, потому что у вас есть другой класс, который вы не опубликовали (центральный блок), и могут возникнуть проблемы с обоими классами. Не могли бы вы опубликовать фото результата?

GonzaloPani 06.08.2018 09:48
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
11
1
22 174
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Если вы используете Bootstrap 4 (кажется, что это так), вы можете использовать классы выравнивания гибкости, такие как выровнять элементы-центр оправдать-контент-центр

 <div class = "col d-flex align-items-center justify-content-center">

Более подробная информация: https://getbootstrap.com/docs/4.1/layout/grid/#alignment

Лучший способ добиться этого - использовать flexbox imho.

HTML:

<div class = "group">
  <img src = "https://fakeimg.pl/150x100/?text=Hello" />
  <img src = "https://fakeimg.pl/150x110/?text=Hello" />
  <img src = "https://fakeimg.pl/150x120/?text=Hello" />
  <img src = "https://fakeimg.pl/150x80/?text=Hello" />
  <img src = "https://fakeimg.pl/150x70/?text=Hello" />
  <img src = "https://fakeimg.pl/150x100/?text=Hello" />
  <img src = "https://fakeimg.pl/150x115/?text=Hello" />
  <img src = "https://fakeimg.pl/150x90/?text=Hello" />
  <img src = "https://fakeimg.pl/150x100/?text=Hello" />
  <img src = "https://fakeimg.pl/150x120/?text=Hello" />
</div>

CSS:

DIV.group {
 display:flex;
 flex-flow:row wrap;
 justify-content:space-between;
 align-items:center;
 align-content:stretch;
}

не знаю о начальной загрузке, но если вы используете обычный CSS примените этот класс к дочернему контейнеру

position: absolute,
margin: auto,
top: 0,
right: 0,
bottom: 0,
left: 0,

Я рекомендую вам использовать display:flex, вам просто нужно создать горизонтальный класс и вертикальный класс и назначить его разделам изображения в зависимости от ориентации, которую вы хотите ему придать.

Это легко и просто, я пишу вам сниппет, вам просто нужно поменять поля, и я тоже поменял изображение.

div.horizontal {
    display: flex;
    justify-content: center;
    margin-bottom: 15px;
}

div.vertical {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-right: 15px;
}
<div class = "row horizontal">
        <div class = "col vertical">
            <img class = "center-block image-center" width = "150" src = "https://www.alliedmetrics.com/images/black-viton-seals.png"/>
        </div>

        <div class = "col vertical">
            <img class = "center-block image-center" width = "150" src = "https://www.alliedmetrics.com/images/black-viton-seals.png"/>
        </div>            <div class = "col vertical">
            <img class = "center-block image-center" width = "150" src = "https://www.alliedmetrics.com/images/black-viton-seals.png"/>
        </div>            <div class = "col vertical">
            <img class = "center-block image-center" width = "150" src = "https://www.alliedmetrics.com/images/black-viton-seals.png"/>
        </div>
    </div>

    <div class = "row horizontal">
        <div class = "col vertical">
            <img class = "center-block" width = "150" src = "imagery/5.png"/>
        </div>            <div class = "col vertical">
            <img class = "center-block " width = "150" src = "imagery/6.png"/>
        </div>            <div class = "col vertical">
            <img class = "center-block" width = "150" src = "imagery/7.png"/>
        </div>            <div class = "col vertical">
            <img class = "center-block" width = "150" src = "imagery/8.png"/>
        </div>
</div>

Надеюсь, это поможет тебе.

    HTML:

<div class = "row imageCenterAlign topAlign">
        <div class = "col">
            <img class = "center-block image-center" width = "150" src = "imagery/1.png"/>
        </div>
        <div class = "col">
            <img class = "center-block image-center" width = "150" src = "imagery/2.png"/>
        </div>            <div class = "col">
            <img class = "center-block image-center" width = "150" src = "imagery/3.png"/>
        </div>            <div class = "col">
            <img class = "center-block image-center" width = "150" src = "imagery/4.png"/>
        </div>
    </div>

    <div class = "row imageCenterAlign">
        <div class = "col">
            <img class = "center-block" width = "150" src = "imagery/5.png"/>
        </div>            <div class = "col">
            <img class = "center-block" width = "150" src = "imagery/6.png"/>
        </div>            <div class = "col">
            <img class = "center-block" width = "150" src = "imagery/7.png"/>
        </div>            <div class = "col">
            <img class = "center-block" width = "150" src = "imagery/8.png"/>
        </div>
    </div>

css:
.imageCenterAlign{
    display: flex;
    justify-content: center;
    align-items: center;
}
.topAlign{
    top:50%;
}

Этот CSS будет реагировать на любые устройства. Он будет центрироваться по горизонтали и вертикали.

.col {
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

Другие вопросы по теме