[英]How can i make a flex item fill its parents empty space when the parent gets resized?
As seen in this codepen , when the page is loaded, the orange box (area that gets filled with text over time) does not fill enough space to push the pink box (textarea to push text into orange box) to the bottom of the green box (div element to hold textwindow and textarea).如本代码笔所示,加载页面时,橙色框(随着时间的推移被文本填充的区域)没有填充足够的空间来将粉红色框(将文本推入橙色框的文本区域)推到绿色的底部框(用于保存文本窗口和文本区域的 div 元素)。 however when i zoom in on the page itself it suddenly does.
然而,当我放大页面本身时,它突然出现了。 how do i achieve this behaviour without zooming in?
我如何在不放大的情况下实现这种行为?
Im a beginner and i would like to not switch display options to float/block/grid/whatever.我是初学者,我不想将显示选项切换为浮动/块/网格/其他。 Beyond that i dont care how it is achieves (CSS/js).
除此之外,我不关心它是如何实现的(CSS/js)。
Some relevant code at a glance:一些相关代码一目了然:
.Menu{ margin-left: 10%; margin-right: 10%; border: black solid 5px; display: flex; flex-direction: column; min-height: 300px; max-height: 90vh; }.MsgComposer{ border: green solid 5px; display: flex; flex-direction: column; flex-grow: 1; max-height: 90vh; }.MsgWindow{ border: orangered inset 2px; border-radius: 5px; overflow-y: scroll; min-height: 75vh; max-height: 90vh; }.InputField{ border: violet solid 5px; display: inherit; flex-flow: row; flex-wrap:nowrap; width:auto; align-items: flex-end; min-height: 1pt; }
<div class="Menu"> <div class="MsgAndInput"> <div class="persistentBtn"> <button id="MenuBTN" title="Menu" value="noHide" onclick="toggleVis('persistentBtn')"></button> <button id="showSrv" title="Show/Hide Servers" onclick="toggleVis('serverSelect')"></button> <button id="showUsr" title="Show/Hide Users " onclick="toggleVis('userSelect')"></button> </div> <div class="Select"> <div class="serverSelect" id="ServerList"> <b style="color: white;">Server:</b> <ul id="UserServerSelection"> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> <li value="Server-1">serverPlaceholder</li> </ul> </div> <div class="userSelect" id="UserList"> <b style="color: white;">Person:</b> <ul name="UserRecipientSelection" id="UserRecipientSelection"> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> <li value="name">namePlaceholder</li> </ul> </div> </div> <div class="MsgComposer"> <div class="MsgWindow" id="Messages"> <.--Window with messages received/sent--> </div> <div class="InputField"> <textarea id="UserMessage" placeholder="Enter Text here..."></textarea> <button id="SelectAttachment" title="Attach something..." onclick="uploadFileName()"> <input type="file" name="uploadFile" id="FileUpload"> </button> </div> </div> </div> </div>
Simply put flex-grow: 1;
简单地说
flex-grow: 1;
on .MsgWindow
.在
.MsgWindow
上。 This makes it grow vertically (because it's inside a flex-direction: column;
element) to take up all remaining space.这使得它垂直增长(因为它在
flex-direction: column;
元素内)以占用所有剩余空间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.