定位在底部时溢出滚动
Overflow scroll while positioning at bottom
我希望我的内容从 parent 的底部开始并向上延伸,允许滚动。我能找到锚定到底部的唯一方法是在 parent/child 中使用位置 relative/absolute,但似乎当我这样做时,以及将 child 绝对定位在其底部parent,溢出无法正常工作。
<div id="relative">
<div id="inner">
<div>
scroll<br>
stuff<br>
here<br>
</div>
</div>
</div>
还有 css
#relative {
position: relative;
height: 100px;
overflow-y: scroll;
}
#inner {
position: absolute;
bottom: 0;
}
我的内部 div 中有更多内容要显示,因此它肯定比外部 div 扩展到更高的高度。谁能解释为什么当我位于底部时这不起作用?谢谢
我认为仅使用 CSS 不是一个好主意。 CSS 是文档样式 sheet,您需要更多 "dynamic"(javascript 来救援)。
唯一的 CSS 解决方案可能更像是黑客:http://jsfiddle.net/UDuqe/
解决方案将是:
scrollToBottom = function () {
var relative = document.getElementById("relative");
relative.scrollTop = relative.scrollHeight;
};
scrollToBottom();
https://jsfiddle.net/dcLcxpqj/1/
更新:
在新的内部设置滚动div:
添加html:
<form>
<input id="message" type="text">
<button onclick="addComment(event)"> Insert new Comment</button>
</form>
然后添加javascript:
addComment = function(event) {
event.preventDefault(); //prevent the form submit (default behavior of "button")
var relative = document.getElementById("relative");
var inner = document.getElementById("inner");
var message = document.getElementById("message");
var div = document.createElement("div");
div.innerHTML = message.value;
relative.appendChild(div);
message.value = "";
scrollToBottom();
}
我希望我的内容从 parent 的底部开始并向上延伸,允许滚动。我能找到锚定到底部的唯一方法是在 parent/child 中使用位置 relative/absolute,但似乎当我这样做时,以及将 child 绝对定位在其底部parent,溢出无法正常工作。
<div id="relative">
<div id="inner">
<div>
scroll<br>
stuff<br>
here<br>
</div>
</div>
</div>
还有 css
#relative {
position: relative;
height: 100px;
overflow-y: scroll;
}
#inner {
position: absolute;
bottom: 0;
}
我的内部 div 中有更多内容要显示,因此它肯定比外部 div 扩展到更高的高度。谁能解释为什么当我位于底部时这不起作用?谢谢
我认为仅使用 CSS 不是一个好主意。 CSS 是文档样式 sheet,您需要更多 "dynamic"(javascript 来救援)。
唯一的 CSS 解决方案可能更像是黑客:http://jsfiddle.net/UDuqe/
解决方案将是:
scrollToBottom = function () {
var relative = document.getElementById("relative");
relative.scrollTop = relative.scrollHeight;
};
scrollToBottom();
https://jsfiddle.net/dcLcxpqj/1/
更新:
在新的内部设置滚动div:
添加html:
<form>
<input id="message" type="text">
<button onclick="addComment(event)"> Insert new Comment</button>
</form>
然后添加javascript:
addComment = function(event) {
event.preventDefault(); //prevent the form submit (default behavior of "button")
var relative = document.getElementById("relative");
var inner = document.getElementById("inner");
var message = document.getElementById("message");
var div = document.createElement("div");
div.innerHTML = message.value;
relative.appendChild(div);
message.value = "";
scrollToBottom();
}