html - 使 div 粘在页面底部但保持流动

标签 html css gwt

好的,我将首先从一张图片和代码开始,以便更好地解释我的问题。

enter image description here

<div class="overall">
    <div class="areas">
        <div class="area">
            Area 1
        </div>
        <div class="area">
            Area 2
        </div>
        <div class="area">
            Area 3
        </div>
    </div>
    <div class="log">
        <div class="logheader">
            Logheader
        </div>
        <div class="logbody">
            Logbody
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
            <div>Test</div>
        </div>
    </div>
</div>


body, html {
    max-height: 100vh;
}

*, *:before, *:after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.area, .logheader {
    height: 72px;
}

div {
    border: 1px solid lightgrey;
}

.log {
    height: 572px;
    border: 1px solid black;
}

.logbody {
    height: 500px;
    overflow: auto;
}

.areas {
    overflow-y: scroll;
    border: 1px solid blue;
}

.overall {
    max-height: 100vh;
}

所以我需要实现的(仅使用 CSS)首先是日志部分始终直接位于区域部分下方。一旦浏览器窗口变小并且浏览器窗口的底部“接触”到日志部分的底部,日志部分就应该附着在浏览器窗口的底部。当浏览器窗口的高度进一步降低时,日志部分应保持其固定大小,区域部分应通过滚动条变小。只有区域部分应该有一个滚动条(一旦它对于内容来说太小了)并且日志正文也应该有一个,正如您已经从屏幕截图中看到的那样。但是页面本身永远不应该有滚动条,这就是为什么整个页面的最大高度设置为 100vh 的原因。

您在代码中看到的是我迄今为止尝试过的,但这并没有按预期工作。

编辑:正如每个人都在说,如果没有 JS 等,这将无法工作。我应该补充一点,稍后我将不得不在 GWT 中使用它,所以有谁知道如何使用 GWT 做到这一点?

最佳答案

一个有点反常的方法是 - 在 gwt 中你可以使用浏览器事件的监听器 -

http://www.gwtproject.org/javadoc/latest/com/google/gwt/dom/client/BrowserEvents.html#CHANGE

然后你可以通过----获取浏览器的高度和宽度

http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/Window.html

-- Window.getClientHeight() -- 窗口.getClientWidth()

对于日志部分,您可以通过 - 设置滚动面板大小

 Window.getClientHeight().

关于html - 使 div 粘在页面底部但保持流动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30453372/

相关文章:

java - 如何创建 REST 兼容的 servlet?

javascript - 单击按钮不执行任何操作

Javascript 缩小和 HTML5 list

jquery - 根据页面宽度动态添加或删除表格中的列

javascript - 如何在我的容器内对齐我的 table ?

Node.JS/EJS 的 CSS 问题

java - 将导航按钮添加到 AbstractCell

css - 如何通过屏幕高度而不是浏览器高度设置高度

css - 初始化时 Masonry Grid Broken Layout

java - 想要从我的 java 代码访问 css 样式