Сделайте так, чтобы гибкая строка растягивалась до высоты содержимого в ячейке - содержимое вытекало из контейнера DIV

Обычно я задаю вопросы по Angular, но сегодня у меня вопрос по CSS и FlexBox. В моем приложении я отображаю некоторую информацию об интерфейсе, имени пользователя, названии компании и названии отдела, если информация будет длинной (например, длинное имя с большим количеством символов). в рост, чтобы соответствовать тексту. Текст не должен влезать в строку ниже.

Мой HTML выглядит так...

<div class = "assignment">
  <!-- Here we want to colums, one to contain the rows of info
      The other to contain a single button -->
  <div class = "assignment__details">
    <div class = "assignment__row">
      <div class = "assignment__row__title">User</div>
      <div class = "assignment__row__value">
        Oh this is a long user name
      </div>
    </div>
    <div class = "assignment__row">
      <div class = "assignment__row__title">Company:</div>
      <div class = "assignment__row__value">
        Oh this is a long company name
      </div>
    </div>
    <div class = "assignment__row">
      <div class = "assignment__row__title">Department:</div>
      <div class = "assignment__row__value" >
        This is Such a long Department Name
      </div>
    </div>
  </div>
  <!-- here is the col with the button -->
  <div class = "assignment__controls">
    <button mat-icon-button (click) = "doSomething()">
      <mat-icon>edit</mat-icon>
    </button>
  </div>
</div>

Вот мой CSS (менее написанный с использованием БЭМ)

.assignment {
  display: flex;
  background-color: #C0C0C0;
  padding: 10px;
  width: 300px; // just for demo puropses

  &__details {
    flex: 1 1 80%;
  }

  &__controls {
    display: flex;
    flex: 1 1 20%;
    justify-content: flex-end;
    align-items: center;
  }

  &__row {
    display: flex;
    height: 21px;

    &__title {
      flex: 1 0 50%;
    }

    &__value {
      flex: 1 0 50%;
    }
  }
}

Вот JS-бин https://jsbin.com/juguvovelo/edit?html, css, вывод

как вы можете видеть, текст перетекает в строку ниже и выходит из контейнера! Как показывает этот снимок экрана! Я устанавливаю flex-grow из .assignment__row, но ничего не дает желаемого эффекта?

Сделайте так, чтобы гибкая строка растягивалась до высоты содержимого в ячейке - содержимое вытекало из контейнера DIV

Если бы кто-нибудь мог помочь мне решить эту проблему, я был бы очень признателен. Возможно, это проблема с моей структурой HTML?

вы установили высоту 21px на .assignment__row?

kukkuz 09.04.2019 11:31
Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
1
1
191
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Удалить height из assignment__row

.assignment {
	 display: flex;
	 background-color: #c0c0c0;
	 padding: 10px;
	 width: 300px;
}
 .assignment__details {
	 flex: 1 1 80%;
}
 .assignment__controls {
	 display: flex;
	 flex: 1 1 20%;
	 justify-content: flex-end;
	 align-items: center;
}
 .assignment__row {
	 display: flex;
}
 .assignment__row__title {
	 flex: 1 0 50%;
}
 .assignment__row__value {
	 flex: 1 0 50%;
}
 
<div class = "assignment">
  <!-- Here we want to colums, one to contain the rows of info
      The other to contain a single button -->
  <div class = "assignment__details">
    <div class = "assignment__row">
      <div class = "assignment__row__title">User</div>
      <div class = "assignment__row__value">
        Oh this is a long user name
      </div>
    </div>
    <div class = "assignment__row">
      <div class = "assignment__row__title">Company:</div>
      <div class = "assignment__row__value">
        Oh this is a long company name
      </div>
    </div>
    <div class = "assignment__row">
      <div class = "assignment__row__title">Department:</div>
      <div class = "assignment__row__value" >
        This is Such a long Department Name
      </div>
    </div>
  </div>
  <!-- here is the col with the button -->
  <div class = "assignment__controls">
    <button mat-icon-button (click) = "doSomething()">
      <mat-icon>edit</mat-icon>
    </button>
  </div>
</div>
Ответ принят как подходящий

Вам нужно удалить высоту из .assignment__row. Вот JSBin ссылка.

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