javascript - 我怎样才能在一个容器中有两个 div,以便在调整一个的大小时另一个自动调整大小以填充容器?

标签 javascript css html

我不确定如何最好地解释这一点,但基本上我想要的是一个容器 div,它是我屏幕的 100%,里面有两个 div,高度的 50%。我想要它,以便用户可以在容器 div 高度的 20%-80% 之间调整顶部 div 的大小,并让较低的 div 自动填充容器而不会溢出它。我遇到了两个问题:

  1. 如果我将顶部 div 的高度设置为 50%(使用 CSS 或将高度设置为容器 offsetHeight 的一半的 DOMContentLoaded 函数),它将不允许用户将其缩小到该尺寸以下.

  2. 显然 onresize 在 Chrome 的 div 中不起作用,所以我找不到修改下部 div 高度的方法。

我的问题是:

  1. 这有可能吗?
  2. 将一些元素放在两个 div 之间并在其上使用 html5 可拖动会更好吗?我唯一需要支持的浏览器是 Google Chrome。
  3. 还是我最好使用框架?

不允许使用外部 javascript 库。所以没有 jQuery。

这是我目前所拥有的:

<html>
<head>
    <script type="text/javascript">
        document.addEventListener("DOMContentLoaded", function set_top_div_height() {
            var container_height = document.getElementById('container').offsetHeight;
            var top_div = document.getElementById('top');
            top_div.style.height = container_height / 2 + "px";
        });
    </script>
    <style type="text/css">
        div {
            -moz-box-sizing:border-box;
            -webkit-box-sizing:border-box;
            box-sizing:border-box;
        }

        #container {
            width: 100%;
            height: 100%;
            border: solid black 1px;
            overflow: hidden;
        }

        #top {
            width 100%;
            min-height: 20%;
            max-height: 80%;
            resize: vertical;
            overflow: auto;
            border-bottom: solid black 1px;
            background-color: #333;
        }

        #bottom {
            width: 100%;
            height: 50%;
            background-color: #ccc;
        }
    </style>
</head>
<body>
<div id="container">
    <div id="top">
        Top
    </div>
    <div id="bottom">
        Bottom
    </div>
</div>
</body>
</html>

最佳答案

好的,我通过创建一个函数来调整底部 div 的大小并使用 setTimeout 仅轮询更新来找到部分问题的答案。所以现在剩下的唯一问题是,如何将顶部 div 的高度更改为 50%,而不会导致 Chrome 稍后阻止它再次小于该尺寸?

关于javascript - 我怎样才能在一个容器中有两个 div,以便在调整一个的大小时另一个自动调整大小以填充容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15619370/

相关文章:

javascript - JsTree 从未呈现的节点获取 html 属性

javascript - 过渡结束不触发

javascript - 如何使用javascript在资源管理器中播放wav文件

html - 如何在 <ul> 标签中选择第二个和第三个元素(li)(使用 CSS)?

javascript - 无法获取输入字段 JS 的值

javascript - Javascript 中字符串的正则表达式

Javascript:获取键入的 CSS 值而不是计算值

html - CSS - 对齐不共享同一父级的 div

html - 具有反转值的仪表标签

java - Javafx 中的 CSS 可以用于动画吗?