Как сделать так, чтобы столбцы начальной загрузки разваливались только равными кратными? - PullRequest
1 голос
/ 20 июня 2019

У меня есть 4 равных столбца в каждой строке начальной загрузки. Я хочу разрешить только 3 конфигурации:

  1. Все 4 рядом друг с другом
  2. Два сверху и два снизу
  3. Все в одном столбце

Однако, если я перемещаю размер экрана, я иногда получаю 3 столбца вверху и один по центру внизу. Как я могу предотвратить это и сделать равным количество столбцов выше и ниже?

<div class="row">
    <div class="col-sm">
      <img src="" class="img">
      </div>
    <div class="col-sm">
      <img src="" class="img">
    </div>
    <div class="col-sm">
      <img src="" class="img">
     </div>
    <div class="col-sm">
      <img src="" class="img">
     </div>
  </div>

В принципе, я хочу предотвратить это

1 |  2  |  3
     4

и разрешить только это:

1  |  2  |  3  |  4

1  |  2
3  |  4

1
2
3
4

Я ценю любую помощь!

1 Ответ

2 голосов
/ 20 июня 2019

Bootstrap 4 использует 5 различных классов .col, чтобы указать, сколько столбцов должен занимать каждый элемент в различных окнах просмотра:

.col- (extra small devices - screen width less than 576px)
.col-sm- (small devices - screen width equal to or greater than 576px)
.col-md- (medium devices - screen width equal to or greater than 768px)
.col-lg- (large devices - screen width equal to or greater than 992px)
.col-xl- (xlarge devices - screen width equal to or greater than 1200px)

Принимая во внимание, что Bootstrap имеет 12 столбцов, вам просто нужно разделить 12 на желаемое количество столбцов в каждой точке останова, чтобы получить нужную цель .col. Например, если вы хотите 2 столбца для средних устройств, вы поделите 12 на 2, чтобы получить 6, что даст вам класс .col-md-6.

Предполагая, что вам нужно 4 столбца на больших и очень больших устройствах, 2 столбца на средних устройствах и 1 столбец на малых и очень маленьких устройствах, вы захотите использовать следующие классы:

.col-12
.col-sm-12
.col-md-6
.col-lg-3
.col-xl-3

Это можно увидеть в следующем:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

<div class="row">
  <div class="col-12 col-sm-12 col-md-6 col-lg-3 col-xl-3">
    <img src="https://placehold.it/100" class="img">
  </div>
  <div class="col-12 col-sm-12 col-md-6 col-lg-3 col-xl-3">
    <img src="https://placehold.it/100" class="img">
  </div>
  <div class="col-12 col-sm-12 col-md-6 col-lg-3 col-xl-3">
    <img src="https://placehold.it/100" class="img">
  </div>
  <div class="col-12 col-sm-12 col-md-6 col-lg-3 col-xl-3">
    <img src="https://placehold.it/100" class="img">
  </div>
</div>

Это приведет к тому, что элементы «защелкиваются», занимая 4 столбца, и занимают только 2 столбца, когда вы перетаскиваете область просмотра, чтобы быть уже.

PS: Также обратите внимание, что у вас есть два мошеннических </div> в вашем примере, которые могут испортить отображение, если они существуют в вашем реальном коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...