Отзывчивые блоки div

У меня есть 6 блоков подряд:

Отзывчивые блоки div

В мобильной и десктопной версии все работает как я хочу, но когда я меняю flex-direction с row на column:

Отзывчивые блоки div

В десктопной версии все работает хорошо, а вот в мобильной блоки не располагаются по 2 в каждом ряду, они в столбик. Как я могу это решить?

CSS:

* {
  box-sizing: border-box;
}
img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
}
.picture-box {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 3rem 1.5rem;
}

.ring {
  flex: 0 0 calc(50% - 10px);
  padding: 20px;
  margin-bottom: 20px;
  border: 1px solid green;
  text-align: center;
}


.thumb {
  display: inline-block;
  max-width: 200px;
  padding: 10px;
  border: 1px solid blue;
}

@media all and (min-width: 1024px) {
  .ring {
    flex: 0 0 calc((100% / 3) - (40px / 3))
  }
}
@media all and (min-width: 1240px) {
  .ring {
    flex: 0 0 calc((100% / 6) - (100px / 6))
  }
}

HTML:

<div class = "picture-box">
  <div class = "ring">
    <div class = "thumb">
      <img src = "https://via.placeholder.com/200">
    </div>
  </div>
  <div class = "ring">
    <div class = "thumb">
      <img src = "https://via.placeholder.com/200">
    </div>
  </div>
  <div class = "ring">
    <div class = "thumb">
      <img src = "https://via.placeholder.com/200">
    </div>
  </div>
  <div class = "ring">
    <div class = "thumb">
      <img src = "https://via.placeholder.com/200">
    </div>
  </div>
  <div class = "ring">
    <div class = "thumb">
      <img src = "https://via.placeholder.com/200">
    </div>
  </div>
  <div class = "ring">
    <div class = "thumb">
      <img src = "https://via.placeholder.com/200">
    </div>
  </div>
</div>

чего вы хотите достичь?

henser 25.02.2019 11:58

С вашим текущим кодом я ожидал, что на мобильном телефоне будет 2 звонка для каждого столбца, а не для строки. Разве это не так на данный момент?

Sagi Rika 25.02.2019 11:59

Какое разрешение/браузер вы используете для экрана телефона?

Shameen 25.02.2019 12:07
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в 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. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
3
417
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

Как насчет использования мультимедийного запроса для настольных компьютеров, чтобы сохранить макет column и использовать flex-direction : row для мобильных устройств и планшетов?

@media all and (min-width: 1024px) {
  .ring {
    flex: 0 0 calc((100% / 3) - (40px / 3))
  }

  .picture-box {
    flex-direction: column;
  }

}

Смотрите эту скрипку

не могли бы вы помочь мне еще в одном вопросе?

user10710492 26.02.2019 14:26

пожалуйста, посмотрите этот вопрос. никто не может мне помочь в этом вопросе: stackoverflow.com/questions/54886219/…

user10710492 26.02.2019 14:48

так ты не мог бы мне помочь?

user10710492 26.02.2019 15:16

Пожалуйста, используйте https://getbootstrap.com/ framework . и используйте html-структуру, подобную этой,

      <div class = "picture-box">
            <div class = "row">
                <div class = "col-sm-2">
                    <div class = "ring">
                        <div class = "thumb">
                            <img src = "https://via.placeholder.com/200">
                        </div>
                    </div>
                </div>
                <div class = "col-sm-2">
                    <div class = "ring">
                        <div class = "thumb">
                            <img src = "https://via.placeholder.com/200">
                        </div>
                    </div>
                </div>
                <div class = "col-sm-2">
                    <div class = "ring">
                        <div class = "thumb">
                            <img src = "https://via.placeholder.com/200">
                        </div>
                    </div>
                </div>
                <div class = "col-sm-2">
                    <div class = "ring">
                        <div class = "thumb">
                            <img src = "https://via.placeholder.com/200">
                        </div>
                    </div>
                </div>
                <div class = "col-sm-2">
                    <div class = "ring">
                        <div class = "thumb">
                            <img src = "https://via.placeholder.com/200">
                        </div>
                    </div>
                </div>
                <div class = "col-sm-2">
                    <div class = "ring">
                        <div class = "thumb">
                            <img src = "https://via.placeholder.com/200">
                        </div>
                    </div>
                </div>
                <div class = "col-sm-2">
                    <div class = "ring">
                        <div class = "thumb">
                            <img src = "https://via.placeholder.com/200">
                        </div>
                    </div>
                </div>
            </div>
        </div>

Добро пожаловать в SO, когда задают вопрос, попробуйте ответить на вопрос, а не предлагать совершенно новый способ сделать что-то, если это не актуально. В этом случае вы предлагаете совершенно новую структуру, которую ОП не использует. Эти типы предложений должны быть комментариями, во всяком случае.

StudioTime 25.02.2019 12:34

Пожалуйста, вы можете попробовать это....

<style>
body{padding: 0px;margin: 0px;}
*{box-sizing: border-box;}
img{width: auto;max-width: 100%;}
.picture-box{display: flex;flex-direction: row;justify-content:space-around; padding: 3rem 1.5rem;}
.ring{padding: 20px;margin:0px 10px 20px 10px;border: 1px solid green;text-align: center;}
.thumb{display: block;padding: 10px;border: 1px solid blue;}
@media(max-width: 1024px){.picture-box{flex-wrap: wrap;}.ring{width: calc(33.3% - 20px);}}
@media(max-width: 768px){.ring{width: calc(50% - 20px);}}
@media(max-width: 480px){.ring{width: 100%; margin: 0px 0px 20px 0px;}}
</style>

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