Как центрировать изображение при уменьшении окна просмотра?

Итак, у меня есть три изображения, содержащихся во флекс-боксе. Он идеально центрирован, но как только я уменьшаю область просмотра, изображение, кажется, прилипает к левой стороне и не центрируется автоматически. Примеры flexbox показывают изменение размера изображений под размер экрана, и я не совсем понимаю, где я ошибся.

https://codepen.io/sblocks/pen/MXaRwd

<div class = "services">
  <div class = "three">
    <ul class = "hover">
      <li>
        <img src = "img/pictures/landing/1.jpg" alt = "landscape">
        <h2>Landscaping</h2>
        <span class = "h1"></span>
        <span class = "h2"></span>
        <span class = "h3"></span>
      </li>
      <li>
        <img src = "img/pictures/landing/3.jpg" alt = "tree">
        <h2>Tree Services</h2>
        <span class = "h1"></span>
        <span class = "h2"></span>
        <span class = "h3"></span>
      </li>
      <li>
        <img src = "img/pictures/landing/2.jpg" alt = "plow">
        <h2>Storm Cleanup</h2>
        <span class = "h1"></span>
        <span class = "h2"></span>
        <span class = "h3"></span>
      </li>
    </ul>
  </div>

.services {
  width: 100%;
  height: 100vh;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
  justify-content: space-around;
  background-color: #2e2e2e;
}
.three {
  max-width: 950px;
  margin: auto;
  width: 100%;
  display: table;
  margin-top: 25vh;
}
.three:after {
  content: "";
  clear: both;
}
.hover {
  margin: 0;
  padding: 0;
  list-style-type: none;
}
.hover li {
  position: relative;
  max-width: 293px;
  background-color: #4f4f4f;
  width: 100%;
  height: 400px;
  margin: 10px;
  float: left;
  overflow: hidden;
  cursor: pointer;
  background-position: center;
}
.h1,
.h2,
.h3 {
  position: absolute;
  top: 0;
  left: 0;
  width: 0%;
  height: 135px;
  background-color: #c5ddb5;
  transition-duration: 0.8s;
}
.h2 {
  top: 133px;
  width: 100%;
  left: 293px;
  background-color: #68d793;
  transition-duration: 0.8s;
}
.h3 {
  top: 266px;
  transition-duration: 0.8s;
}
.hover li:hover .h1,
.hover li:hover .h3 {
  width: 100%;
}
.hover li:hover .h2 {
  left: 0;
}
.hover li h2 {
  position: absolute;
  top: 187px;
  color: #fff;
  text-transform: uppercase;
  font-size: 25px;
  z-index: 1;
  left: -110px;
  transform: translate(-50%);
  width: 134px;
  letter-spacing: 1px;
  transition-duration: 1.5s;
}
.hover li:hover h2 {
  left: 50%;
}

Как мы можем протестировать его без изображений или хотя бы точных размеров изображений, которые вы там использовали? Кроме того, вы должны быть в порядке, просто добавив text-align: center; в .hover li.

Nikki Mather 03.06.2018 00:05

Попробуйте img {width: 100%;}

Hastig Zusammenstellen 03.06.2018 00:15
Приемы 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 сценарий полностью изменился.
0
2
41
1

Ответы 1

Как центрировать элементы списка внутри элемента UL?

Вам нужно использовать display:inline-block вместо float:left (и, очевидно, вы должны добавить text-align:center в контейнер)

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