Создать полосу прокрутки родительского элемента с переполнением: автоматически не отображается, если дочерний элемент переполняется

#css #sass

#css #sass

Вопрос:

У меня есть родительский div с overflow-y: auto . Он содержит произвольное количество дочерних элементов с текстом. Желаемое поведение заключается в том, чтобы полоса прокрутки появлялась только в том случае, если содержимое переполняется в родительском div, и НЕ появлялась, если содержимое переполняется в любом из дочерних div.

Дочерние элементы всегда будут иметь переполнение, поскольку шрифт, который я использую, вызывает переполнение пробела ниже / выше шрифта с требуемой высотой строки (1.2).

В настоящее время полоса прокрутки отображается неправильно, даже если родительский div содержит недостаточно дочерних di> s для переполнения из-за максимальной высоты.

Единственное решение, которое я мог придумать для достижения желаемого поведения, — это установить высоту строки равной 1,5 (минимальная высота, чтобы шрифт не переполнялся) и уменьшить пространство между строками текста с отрицательными полями. Однако мне было интересно, есть ли более приятное решение? Я также попытался дать дочерним подразделениям overflow-y: hidden; но это все равно приводит к тому, что у родителя появляется полоса прокрутки.

 .parent {
   max-height: 100px;
   overflow-y: auto;
}

.child {
   line-height: 1.2; // I cause an annoying scrollbar to appear in the parent
}
 
 <div className="parent">
  <div className="child">Text</div>
  <div className="child">Text</div>
  <div className="child">Text</div>
</div>
 

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

1. переполнение элемента является суммой всех его дочерних переполнений, поэтому, если у дочернего элемента происходит переполнение, родительский элемент также получит влияние

2. Спасибо тебе, @TemaniAfif! Значит, CSS не поддерживает удаление определенных дочерних элементов из этой структуры переполнения?