#google-chrome #safari #height #overflow #css-grid
Вопрос:
Пытаюсь сделать что — то теоретически очень простое — использовать display: grid
фиксированную строку заголовка и прокручиваемую строку содержимого, — но получаю совершенно разные результаты в Chrome и Safari. Сведено к основной проблеме:
Код:
<html>
<body>
<div id="root" style="background: gray; height: 100%; width: 100%; overflow: hidden">
<div id="grid" style="height: 100%; width: 100%; display:grid; grid-template-rows: auto 1fr; height: 100%">
<div id="row1" style="width: 100%; height: 100px; background: green; grid-row: 1">
</div>
<div id="row2-container" style="width:100%; height: 100%; max-height:100%; grid-row: 2; overflow: auto">
<div id="row2-content" style="width: 100%; height: 10000px; background: blue; overflow: visible">
</div>
</div>
</div>
</div>
</body>
</html>
Хром (хорошо):
Сафари (плохо):
В случае, если проблема не очевидна , в Safari row2-container
растет, чтобы соответствовать своему дочернему, а не доступному пространству в строке 2 родительского grid
, и, таким образом, не прокручивает переполнение row2-content
. Другими словами, кажется height: 100%
grid
, что дети игнорируются, если размер строки равен 1fr
.
Как я могу получить то, что я хочу, как в Safari, так и в Chrome? Спасибо!
Ответ №1:
Проблема, похоже, была исправлена в Safari 14. Я использовал 13.
Также настройка row2-container
height: auto
, похоже, дает желаемый результат, даже в Safari 13. В любом случае, это, похоже, было ошибкой до версии 14, которая теперь исправлена.