Чтобы получить отзывчивую страницу, я использую колонку Bulma CSS (на основе CSS flexbox), которая:
- Разделить мою страницу на два столбца равной ширины на рабочем столе.
- Сложите два столбца полной ширины на мобильном устройстве.
В левом столбце я, кроме отображения виджета статической карты, использую экран в полный рост.
В правом столбцеЯ хочу разбить по вертикали на две строки:
- Верхняя строка (синим цветом), содержащая несколько элементов управления и имеющая динамическую высоту в зависимости от содержимого.
- Нижняя строка (красным цветом)), содержащая таблицу данных и имеющую динамическую высоту на основе оставшегося пространства внутри экрана.
Общая картина состоит в том, чтобы иметь веб-страницу рабочего стола, содержащуюся в измерении экрана.
Myпроблема, связанная с высотой нижней строки:
- Если я установил фиксированную высоту в процентах, высота строки не является оптимальной в зависимости от экрана (под ней может остаться небольшое неиспользуемое пространство).
- если я не установилфиксированная высота, строка переполняется с экрана (вместо добавления полосы прокрутки внутри строки).
Также я хочу, насколько это возможно, избежать настройки, и, возможно, я мог бы использовать некоторыеБулма из коробки: герой, плитка, ...
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Responsive page</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.8.0/css/bulma.min.css">
</head>
<body>
<div id="app" class="container is-fluid" style="height: 100vh;">
<div class="columns" style="height: 100%;">
<div class="column" style="background-color: green;">
<!-- Fixed full height zone -->
<div id="map" style="height: 100%;">
</div>
<div class="column">
<!-- Dynamic height zone depending on centent -->
<div class="container" style="background-color: blue;">
<p class="buttons is-right">
<button class="button">Button1</button>
<button class="button">Button2</button>
</p>
</div>
<!-- Dynamic height zone depending on remaining space inside the screen -->
<div class="table-container" style="overflow-y:scroll;" style="background-color: red;">
<table class="table is-fullwidth">
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
<tr><td>bla</td></tr>
</table>
</div>
</div>
</div>
</div>
</body>
</html>