To avoid(not cure)
the bug of the scroll being inactive with column-reverse
you should use an extra flex
(or not) container wrapping it.
Once you used column-reverse
the last element will be shown first at top and the scrollbar will be working where needed on the parent wrapper.
To finally get that last element visually at the bottom , you can mirror the whole container via scale()
and mirror again each children so it is readable again .
NOTE: scrolling will be reversed ,scrolling the wheel down will be scrolling up at screen... it is mirrored.
demo below
#chatBody {
height: auto;/* reset */
width: auto;/* reset */
flex: 1;
display: flex;
flex-flow: column-reverse;/* reset preparing instead justify-content flex-end */
transform: scale(1, 1);/* reset, children 1 after 1 will be set back to readable */
counter-reset:div;/* demo purpose */
}
.chat-msg:before {
counter-increment:div;
content:counter(div)' - ';
float:left;color:red;
}
div[id] {
overflow: auto;
border: solid;
height: 170px;
flex-flow: column;
}
div[id],
.chat-msg {
transform: scale(1, -1);/* visual mirroring */
}
.chat-msg {
border-top: solid;
}
<div id>
<div id="chatBody">
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user"></div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
<div class="chat-msg">
<div class="chat-msg-room"></div>
<div class="chat-msg-user">last</div>
<div class="chat-msg-text">Disconnected from chat</div>
</div>
</div>
</div>
If you do not want to mirror the container, this answer uses a javascript so the scroll is already all the way to the bottom and there is no need to involve the flex model.