Размер миниатюры галереи изображений с Bootstrap 4 - PullRequest
0 голосов
/ 10 ноября 2018

У меня очень простая адаптивная галерея изображений только с 6 миниатюрами. На больших и средних устройствах это показывает отлично. Однако в мобильном представлении миниатюры становятся слишком маленькими. Если я добавляю отступы, боковые поля «ломаются», и они больше не выравниваются. Есть ли способ сделать их немного больше, не «ломая» боковые поля? Я разместил изображения, чтобы их было легче понять.

На изображении ниже вы можете видеть, что боковые поля выровнены, но уменьшенные изображения слишком малы.

This is what I want to achieve

А ниже вы можете видеть, что происходит, когда я добавляю отступы. Миниатюры больше, но боковые поля больше не выровнены.

enter image description here

.container {
  max-width: 98%;
  margin: 0 auto;
}

.image-container {
  background-color: #ffffff;
  padding: 10px;
}

.main-image-container img {
  max-width: 100%;
  height: auto;
}

.thumbnail-image-container img {
  max-width: 100%;
  height: auto;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

<div class="container mt-4">
  <div class="row">

    <div class="col-lg-7 image-container">
      <div class="row">
        <div class="col-12 main-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
      </div>
      <div class="row pt-2">
        <div class="col-2 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-2 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-2 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-2 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-2 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-2 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>


      </div>
    </div>

1 Ответ

0 голосов
/ 10 ноября 2018

Одним из решений было бы добавление одинакового отступа ко всем col-* классам. Bootstrap имеет классы заполнения с именем p-*. В следующем примере классы p-1 добавлены к элементам main-image-container и thumbnail-image-container.

.container {
  max-width: 98%;
  margin: 0 auto;
}

.image-container {
  background-color: #ffffff;
  padding: 10px;
}

.main-image-container img {
  max-width: 100%;
  height: auto;
}

.thumbnail-image-container img {
  max-width: 100%;
  height: auto;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

<div class="container mt-4">
  <div class="row">

    <div class="col-lg-7 image-container">

      <div class="row">
        <div class="col-12 p-1 main-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
      </div>

      <div class="row pt-2">
        <div class="col-2 p-1 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-2 p-1 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-2 p-1 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-2 p-1 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-2 p-1 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-2 p-1 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
      </div>

    </div>

  </div>
</div>

Вторым решением будет разбиение миниатюр на две строки с использованием правильных col-* классов. Как в следующем примере:

.container {
  max-width: 98%;
  margin: 0 auto;
}

.image-container {
  background-color: #ffffff;
  padding: 10px;
}

.main-image-container img {
  max-width: 100%;
  height: auto;
}

.thumbnail-image-container img {
  max-width: 100%;
  height: auto;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

<div class="container mt-4">
  <div class="row">

    <div class="col-lg-7 image-container">

      <div class="row">
        <div class="col-12 main-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
      </div>

      <div class="row pt-1">
        <div class="col-4 col-md-2 mt-2 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-4 col-md-2 mt-2 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-4 col-md-2 mt-2 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-4 col-md-2 mt-2 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-4 col-md-2 mt-2 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
        <div class="col-4 col-md-2 mt-2 thumbnail-image-container img-fluid">
          <img src="https://placeholdit.co//i/1280x720?&text=Test">
        </div>
      </div>

    </div>

  </div>
</div>
...