Я пытаюсь создать (полный экран) макет из трех столбцов с изменяемым размером левого / центрального столбца. Правый столбец всегда должен быть фиксированного размера и всегда справа.
Я использую стиль изменения размера, чтобы разрешить изменение размера левой области. Центральная область не регулируется по размеру, а просто следует вдоль и создает зазор с правой стороны DIV. Я не могу понять, что я делаю неправильно.
Я пробовал использовать DIV. Я буду счастлив использовать flex, если это лучший способ. Работает только на HTML5, так как для этого потребуются веб-сокеты. Хотел бы избежать JavaScript, если его можно просто стилизовать.
Спасибо: -)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Security-Policy" content="connect-src * 'unsafe-inline';">
<style>
body {
margin:0;
padding:0;
}
#container {
overflow: none;
height: 100vh;
width: 100vw;
margin: 0;
padding: 0;
}
#a_left {
float:left;
height: 100vh;
width: 75%;
background-color: black;
overflow:auto;
resize: horizontal;
}
#a_center {
float:left;
height: 100vh;
min-width: 80px;
width:10%;
overflow: none;
background-color:darkgray;
}
#a_right {
float:right;
height: 100vh;
width: 40px;
min-width: 40px;
max-width: 40px;
overflow:none;
background-color:darkslategray;
color:white;
}
#al_text {
width: 100%;
height: 95%;
overflow-y: auto;
background-color: black;
color:white;
}
#al_cmd {
width: 100%;
height: 5%;
overflow: none;
background-color: darkslategray;
}
#ac_map { width:100%;
height: 25%;
overflow: hidden;
background-color: #222222;
color: white;
}
#ac_paged { width:100%;
height: 75%;
overflow-y: auto;
background-color: #222222;
color: white;
}
</style>
</head>
<body>
<div class="container">
<div id="a_left">
<div id="al_text" role="log" aria-live="polite">
A lot of text goes here.
</div>
<div id="al_cmd">
<table width="100%">
<tr>
<td style="width:10%; color:white;">Command</td>
<td style="width:70%;"><input style="width:97%;" type="text" id="message"/></td>
<td style="width:15%;"><input id="btnSend" type="button" value="Send" disabled="disabled" onclick="onSendClick()"></td>
</tr>
</table>
</div>
</div> <!-- /a_left -->
<div id="a_center">
<div id="ac_map">
An image goes here.
</div>
<div id="ac_paged" aria-live="polite">
Text that sticks goes here and it could be very long.
</div>
</div> <!-- /a_right -->
<div id="a_right">
In<br/>
Eq<br/>
He<br/>
</div>
</div> <!-- /container -->
</body>
</html>
EDIT1:
После публикации этого вопроса и реализации решения из Антонио, я понял, что получу лучший результат, если сначала введу большой левый столбец DIV и фиксированный правый столбец DIV. Затем внутри левого столбца DIV я размещаю левый и центр и делаю их изменяемого размера.
Создает лучший общий UX при перетаскивании изменения размера.