javascript - html 字段集内部高度

标签 javascript css fieldset

我有一个字段集,里面有几个 div,一次只显示一个。我希望字段集始终保持其高度,即使其内容的可见性发生变化。所以我将 fieldset.style.minHeight 设置为所有可能内容部分的 offsetHeight 的最大值。但这并没有考虑到 minHeight 是外部的高度,而不是字段集的客户端部分。所以我尝试添加字段集的 offsetHeight 和 clientHeight 之间的差异。但这不是正确的值(在我的例子中它只有 2 px)。

所以问题是:如何设置字段集的 minHeight 以便为具有给定高度的 child 提供足够的空间。 (我没有使用边框、边距或填充,我正在寻找纯 JavaScript 解决方案)

jsfiddle

<body onload="onLoad()">
    <fieldset id="fs">
        <legend>Status</legend> 
        <span id="id1" style="display: block;">Short text.</span>
        <span id="id2" style="display: block;">Some longer text. Some longer text. Some longer text. Some longer text. Some longer text. Some longer text. Some longer text. Some longer text. Some longer text. Some longer text. Some longer text. Some longer text. Some longer text. Some longer text. Some longer text. Some longer text. </span>
    </fieldset>
    <input type=submit value="toggle" onclick="toggle()" />
</body>

function onLoad() {
    var fs = document.getElementById("fs");
    var span1 = document.getElementById("id1");
    var span2 = document.getElementById("id2");
    fs.style.minHeight = Math.max(span1.offsetHeight, span2.offsetHeight).toString() + "px";
    span1.style.display = "block";
    span2.style.display = "none";
}

function toggle() {
    var span1 = document.getElementById("id1");
    var span2 = document.getElementById("id2");
    if (span1.style.display == "block") {
        span1.style.display = "none";
        span2.style.display = "block";
    } else {
        span1.style.display = "block";
        span2.style.display = "none";
    }
}

最佳答案

尝试使用此解决方案:http://jsfiddle.net/ps92wynp/

#fs {
    min-height:70px !important;
}

关于javascript - html 字段集内部高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28851909/

相关文章:

javascript - 如何在单个js文件中编写多个中间件

javascript - 数据表:过滤后禁用列大小调整

CSS 问题 : why the 100% width plus 1px border fall in FF browser but not in Chrome?

css - 检查硬件加速可用性? (可测试)

html - 如何使用 CSS 使字段集适合其内容的大小?

并排显示图例的 CSS/HTML 字段集

javascript - Angular 页面上的 Protractor 测试超时

css - 让最高的 div 决定一行的高度

javascript - extjs4如何多次显示字段

javascript - HTMLCanvasContext.drawImage() 在传递使用 jQuery 找到的图像时失败