Как добиться гибкой высоты элемента / столбца вертикального списка в CSS?

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

Мы получили отзывы о том, что размер (высота) этих предметов на веб-сайте не одинаков. Это правильно, потому что на некоторых страницах есть пункты меню, состоящие из двух или даже трех строк. Хотя чаще всего используется однострочный.

Мне поручили следующую проблему:

  • Создайте чистое решение CSS, которое требует стилизации одного компонента (c-menu-item) и его элемента-контейнера (b-sidebar), который автоматически определяет высоту всех пунктов меню в зависимости от размера самого большого пункта меню.

У Flexbox есть простой способ справиться с этим в горизонтальной ориентации, но все попытки воссоздать что-то в вертикальной ориентации до сих пор терпели неудачу.

Обязательный минимальный пользовательский код:

.b-sidebar {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  background: #ff0;
  width: 200px;
  padding: 10px;
}

.c-menu-item {
  display: flex;
  flex-flow: row nowrap;
  align-content: center;
  width: 100px;
  background: #0ff;
  margin: 5px;
}
<div class = "b-sidebar">
  <div class = "c-menu-item">Hello world!</div>
  <div class = "c-menu-item">Hello world!</div>
  <div class = "c-menu-item">Hello world!</div>
  <div class = "c-menu-item">Hello world!</div>
  <div class = "c-menu-item">Hello world! I have two lines</div>
</div>
<p>I would like for <b>all</b> menu items to take the height of the last element, in a responsive matter because the menu items en size differs per page of the web application</p>

(Примечание: я знаю, что могу решить эту проблему с помощью JavaScript, если потребуется. Я просто предпочитаю чистое решение CSS, если это невозможно, то это тоже подойдет мне).

взлом разрешен?

Temani Afif 08.01.2019 12:03

Хаки, читы, эксплойты, пока это работает - работает!

roberrrt-s 08.01.2019 12:04

вы знаете, какое меню будет самым длинным?

Temani Afif 08.01.2019 12:07

@TemaniAfif Теоретически да. Могу применять классы исходя из роста ребенка. Но в идеале это не так. (отзывчивые шрифты, поэтому не каждый 3-строчный дочерний будет трехстрочным).

roberrrt-s 08.01.2019 12:08

потому что у меня есть хак (без необходимости классов) на случай, если вы знаете, какой заголовок самый длинный

Temani Afif 08.01.2019 12:10

по-видимому, вы можете делать строки одинаковой высоты с сеткой css: stackoverflow.com/questions/36004926/… и stackoverflow.com/questions/44488357/…

Pete 08.01.2019 12:13

@Pete Спасибо! Не могу найти этого, проверю

roberrrt-s 08.01.2019 12:18
Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
3
7
73
0

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