我必须为聊天建立一个模块化窗口!我已经有了一个工具栏和一个可以填充的Flex conatiner。现在我遇到了问题,我想为聊天输入字段添加Div。我尝试了几乎所有东西来将这个东西对齐到底部,但没有任何作用。
以下是它的样子:
“消息输入”必须与底部对齐
这是我的实际HTML代码:
<div id="chat_dialog" class="modal" style="height: 600px; overflow-y: hidden">
<div class="toolbar_standard">
<div class="toolbar_standard_control_row">
<img src="/static/images/ic_arrow_back_white.svg" class="toolbar-button" data-bind="click: closeChatDialog">
<div style="font-size: 20px; color: white">Chat</div>
<div style="font-size: 20px; color: white; padding-left: 40%" data-bind="html: chatPartnerName"></div>
<div style="..."></div>
</div>
</div>
<div style="display:flex; height: 100%;">
<div data-bind="foreach: contacts" style="width: 300px; overflow-y: scroll;">
<div class="overviewlist_row waves-effect" style="padding-left: 5px; padding-right: 5px" data-bind="click: $parent.onClick.bind($parent)">
<div>
<div>
<p data-bind="html: name"></p>
</div>
</div>
</div>
</div>
<div style="background-color: #e6e6e6; flex-grow: 1; overflow-y: scroll; padding-bottom: 10px">
<div style="height: 80%; display: flex; flex-direction: column;">
<div id="spinner" class="spinner">
<div class="bounce1"></div>
<div class="bounce2"></div>
<div class="bounce3"></div>
</div>
<div data-bind="foreach: messages" style="padding-left: 15px; min-height: 306px">
<p data-bind="html: message, css: messageClassName"></p>
</div>
<div style="height: auto">
<div class="input-field col s6" style="background-color: white; height: auto;">
<input id="message_to_send" type="text" class="validate" data-bind="value: message_to_send" style="width: 94%;">
<a id="sendChat" class="clickable-icon" data-bind="click: sendMessage" style="padding-top: 0px"><img src="/static/images/ic_send_black.svg"></a>
<label for="message_to_send">Nachricht</label>
</div>
</div>
</div>
</div>
</div>
</div>
这就是它在浏览器中的样子:
在这里,您可以看到它是在“消息”的Div下浮动,并且它动态地移动“消息”Div的大小!
我如何以及在何处将对齐设置为底部?
答案 0 :(得分:2)
第一点:不要使用内联CSS。
您可以通过定位将消息置于最底层。尝试更改您的代码,如下所示
将position:relative
添加到<div style="height: 80%; display: flex; flex-direction: column;">
并将position:absolute; bottom:0;
添加到<div style="height: auto">
。
编辑:如果它没有将您的消息发送到确切的底部,那么您可能会在此部分处理<div style="height: 80%; display: flex; flex-direction: column;">
的高度。
答案 1 :(得分:1)
只需在textarea或textarea容器中添加position: absolute;
和bottom: 0px;
答案 2 :(得分:0)
将 position: fixed;
和 bottom:0;
添加到您的消息输入容器,以解决宽度重叠问题,只需添加 width: inherit;
的属性,该属性将采用父元素的宽度值。
否则,您可以使用 JavaScript 代码动态地将父宽度分配给您的消息容器:
$(document).ready(()=> {
var parentWidth = $('.parent-element').width();
$('.message-container').width(parentWidth);
});