Как я могу сделать Div одинаковой высоты независимо от длины изображения и текста?

#html #css

#HTML #css

Вопрос:

вот html-код: я хочу сохранить div одинаковой высоты, даже если размер фотографий большой или текста длинный .. есть ли решение для этого в css?? вот ссылка на код:https://jsfiddle.net/Youssef_X/81drbgz3/1

 <!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA 058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
  <title>Document</title>
</head>
<body>
  <!--=============PRODUCTE ITEMS START HERE=======-->
  <section>
    <div class="container product-lists">
      <!-- ====== FIRST ROW HERE ===== -->
      <div class="row">
        <div class="col-md-4">
          <div class="product-list">
            <img src="assets/img/game1.jpg" alt="Planet gaming products" />
            <h3 class="title">Eurocoin Interactive</h3>
            <p class="description">It is a long established fact that a reader will be distracted.
            </p><a href="https://www.google.com" class="btn btn-warning text-uppercase">See more</a>
          </div>
        </div>
        <div class="col-md-4">
          <div class="product-list">
            <img src="assets/img/game2.png" alt="Planet gaming products" />
            <h3 class="title">Eurocoin Interactive</h3>
            <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy
             when an unknown printer took a galley of type and scrambled it to make a type specimen book
            </p><a href="https://www.google.com" class="btn btn-warning text-uppercase">see more</a>
          </div>
        </div>
        <div class="col-md-4">
          <div class="product-list">
            <img src="assets/img/machine3.png" alt="Planet gaming products" />
            <h3 class="title">Eurocoin Interactive</h3>
            <p class="description"> when an unknown printer took a galley of type and scrambled it to make a type specimen book
            </p><a href="https://www.google.com" class="btn btn-warning text-uppercase">see morer</a>
          </div>
        </div>
        <!-- ======= END FIRST ROW ====== -->
      </div>
    </div>
 </section>

 <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>
</body>
</html>
  

Ответ №1:

Я бы рекомендовал использовать CSS Flexbox (выровнять элементы). ( https://css-tricks.com/snippets/css/a-guide-to-flexbox / ) Я думаю, что это могло бы решить вашу проблему?

Я вижу, что вы используете Bootstrap, похоже, это может быть вашим решением:http://getbootstrap.com.vn/examples/equal-height-columns В основном добавляем класс .row-eq-height.

 <body>
  <!--=============PRODUCTE ITEMS START HERE=======-->
  <section>
    <div class="container product-lists">
      <!-- ====== FIRST ROW HERE ===== -->
      <div class="row row-eq-height">
        <div class="col-md-4">
          <div class="product-list">
            <img src="assets/img/game1.jpg" alt="Planet gaming products" />
            <h3 class="title">Eurocoin Interactive</h3>
            <p class="description">It is a long established fact that a reader will be distracted.
            </p><a href="https://www.google.com" class="btn btn-warning text-uppercase">See more</a>
          </div>
        </div>
        <div class="col-md-4">
          <div class="product-list">
            <img src="assets/img/game2.png" alt="Planet gaming products" />
            <h3 class="title">Eurocoin Interactive</h3>
            <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy
             when an unknown printer took a galley of type and scrambled it to make a type specimen book
            </p><a href="https://www.google.com" class="btn btn-warning text-uppercase">see more</a>
          </div>
        </div>
        <div class="col-md-4">
          <div class="product-list">
            <img src="assets/img/machine3.png" alt="Planet gaming products" />
            <h3 class="title">Eurocoin Interactive</h3>
            <p class="description"> when an unknown printer took a galley of type and scrambled it to make a type specimen book
            </p><a href="https://www.google.com" class="btn btn-warning text-uppercase">see morer</a>
          </div>
        </div>
        <!-- ======= END FIRST ROW ====== -->
      </div>
    </div>
 </section>

 <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>
</body>
</html>
  

Комментарии:

1. вы пробовали чисто гибкое решение?

Ответ №2:

Эй, братан, поскольку вы используете BS-4, это работает со свойствами flex box, и все столбцы внутри строк автоматически получают одинаковую высоту. Я думаю, у вас есть рабочий код, но я добавил несколько цветов, чтобы сделать его более понятным

Примечание: — Если вы хотите, чтобы все элементы были выровнены по центру, просто добавьте класс «align-items-center» в строку

 .container.product-lists > .row{background-color:grey} 
.container.product-lists > .row .col-md-4{border:1px solid #dddddd}   
 <!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA 058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
  <title>Document</title>
</head>
<body>
  <!--=============PRODUCTE ITEMS START HERE=======-->
  <section>
    <div class="container product-lists">
      <!-- ====== FIRST ROW HERE ===== -->
      <div class="row">
        <div class="col-md-4">
          <div class="product-list">
            <img src="assets/img/game1.jpg" alt="Planet gaming products" />
            <h3 class="title">Eurocoin Interactive</h3>
            <p class="description">It is a long established fact that a reader will be distracted.
            </p><a href="https://www.google.com" class="btn btn-warning text-uppercase">See more</a>
          </div>
        </div>
        <div class="col-md-4">
          <div class="product-list">
            <img src="assets/img/game2.png" alt="Planet gaming products" />
            <h3 class="title">Eurocoin Interactive</h3>
            <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy
             when an unknown printer took a galley of type and scrambled it to make a type specimen book
            </p><a href="https://www.google.com" class="btn btn-warning text-uppercase">see more</a>
          </div>
        </div>
        <div class="col-md-4">
          <div class="product-list">
            <img src="assets/img/machine3.png" alt="Planet gaming products" />
            <h3 class="title">Eurocoin Interactive</h3>
            <p class="description"> when an unknown printer took a galley of type and scrambled it to make a type specimen book
            </p><a href="https://www.google.com" class="btn btn-warning text-uppercase">see morer</a>
          </div>
        </div>
        <!-- ======= END FIRST ROW ====== -->
      </div>
    </div>
 </section>

 <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>
</body>
</html>  

Комментарии:

1. Да, отличный способ очень четко отображать столбцы и строки… но нет способа решить эту проблему с помощью bootstrap4??

2. Вы просто хотите, чтобы высота столбца была одинаковой для любого объема контента @youssefkhoukhou, верно?

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

4. Пожалуйста, просто прикрепите кнопки внизу, это будет здорово @Vikas Patel

5. .product-list { отображение: гибкий; flex-direction: столбец; высота: 100%; } .description { flex-grow: 1; } Добавьте это