Какие стили нужно добавить в card, чтобы каждый элемент в card занимал столько высоты сколько есть в содержимом?

Ссылка скопирована
12 апреля 2026 1 ответ

Какие стили нужно добавить в card, чтобы каждый элемент в card занимал столько высоты сколько есть в содержимом?

Нужно, чтобы элементы карточки tags, title, author занимали столько высоты, сколько содержимого в элементе. Важно, чтобы карточки по размеру были похожи.

<!DOCTYPE html> <html lang="ru">   <head>     <meta charset="UTF-8">     <title>Моя первая страница</title>   </head>   <body>     <div class="card__list">       <div class="card">         <div class="card__tags">           tags tags tags tags tags tags tags tags tags tags tags tags         </div>         <div class="card__title">           title title title title title title title title title title title title title title title title         </div>         <div class="card__line"></div>         <div class="card__author">           author         </div>       </div>       <div class="card">         <div class="card__tags">           tags         </div>         <div class="card__title">           title         </div>         <div class="card__line"></div>         <div class="card__author">           author         </div>       </div>       <div class="card">         <div class="card__tags">           tags         </div>         <div class="card__title">           title         </div>         <div class="card__line"></div>         <div class="card__author">           author         </div>       </div>     </div>   </body> </html>

<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Моя первая страница</title> </head> <body> <div class="card__list"> <div class="card"> <div class="card__tags"> tags tags tags tags tags tags tags tags tags tags tags tags </div> <div class="card__title"> title title title title title title title title title title title title title title title title </div> <div class="card__line"></div> <div class="card__author"> author </div> </div> <div class="card"> <div class="card__tags"> tags </div> <div class="card__title"> title </div> <div class="card__line"></div> <div class="card__author"> author </div> </div> <div class="card"> <div class="card__tags"> tags </div> <div class="card__title"> title </div> <div class="card__line"></div> <div class="card__author"> author </div> </div> </div> </body> </html>

.card__list {   display: grid;   grid-template-columns: repeat(3, 200px); }  .card {   display: grid;   grid-auto-flow: row;   grid-template-rows: 1fr 1fr auto 1fr;   border: 3px solid black; }  .card__tags {   background: lightyellow; }  .card__title {   background: lightblue; }  .card__line {   height: 2px;   background: pink; }  .card__author {   background: lightgreen; }

.card__list { display: grid; grid-template-columns: repeat(3, 200px); } .card { display: grid; grid-auto-flow: row; grid-template-rows: 1fr 1fr auto 1fr; border: 3px solid black; } .card__tags { background: lightyellow; } .card__title { background: lightblue; } .card__line { height: 2px; background: pink; } .card__author { background: lightgreen; }

Дополнительно:

Используй флекс в карточке, а не грид.

  • Kentavr16, и какие стили нужно прописать в флекс?
  • BladeHeroku, flex-grow: 1;
  • nwbck, это почти решило мою задачу:

    Какие стили нужно добавить в card, чтобы каждый элемент в card занимал столько высоты сколько есть в содержимом?

    .card__tags {   flex-grow: 1;   background: lightyellow; }  .card__title {   flex-grow: 1;   background: lightblue; }  .card__line {   height: 2px;   background: pink; }  .card__author {   flex-grow: 1;   background: lightgreen; }

    .card__tags { flex-grow: 1; background: lightyellow; } .card__title { flex-grow: 1; background: lightblue; } .card__line { height: 2px; background: pink; } .card__author { flex-grow: 1; background: lightgreen; }

  • Ответы:

    используй флекс примерно так.

    • Это почти решило мою задачу:

      Какие стили нужно добавить в card, чтобы каждый элемент в card занимал столько высоты сколько есть в содержимом?

      .card__tags {   flex: 1;   background: lightyellow; }  .card__title {   flex: 1;   background: lightblue; }  .card__line {   height: 2px;   background: pink; }  .card__author {   flex: 1;   background: lightgreen; }

      .card__tags { flex: 1; background: lightyellow; } .card__title { flex: 1; background: lightblue; } .card__line { height: 2px; background: pink; } .card__author { flex: 1; background: lightgreen; }

    • убери это
      .card__line {   height: 2px;   background: pink; }

      .card__line { height: 2px; background: pink; }

      и используй бордер - либо бордер-топ для нижнего элемента, либо бордер-боттом для среднего. Я обновил пример в ответе, посмотри еще раз

    • BladeHeroku, и само собой убери из верстки див <div class="card__line"></div>. он не нужен, только ломает отображение.

    Можно еще таким способом

    Какие стили нужно добавить в card, чтобы каждый элемент в card занимал столько высоты сколько есть в содержимом?

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Андрей PHP Ответ

    Для того чтобы каждый элемент в карточке (card) занимал столько высоты, сколько есть в его содержимом, можно использовать следующие стили:

    .card {
      display: flex;
      flex-direction: column;
    }
     
    .card .card-body {
      flex: 1;
    }

    .card { display: flex; flex-direction: column; } .card .card-body { flex: 1; }

    В данном случае мы используем flexbox для задания стилей карточке. Свойство display: flex; на родительском элементе (.card) устанавливает его как flex-контейнер, а свойство flex-direction: column; задает направление отображения элементов в столбец.

    Свойство flex: 1; на элементе с классом .card-body говорит браузеру распределить все доступное пространство в направлении flex-оси (в данном случае по вертикали) между дочерними элементами. Таким образом, каждый элемент внутри карточки будет занимать столько высоты, сколько есть в его содержимом.

    Таким образом, добавив эти стили к вашей карточке, вы добьетесь желаемого эффекта, когда каждый элемент будет занимать столько высоты, сколько есть в его содержимом.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно