【发布时间】:2014-11-21 09:42:01
【问题描述】:
我有一个使用 jQuery 的 Web 项目的典型父子 div 层次结构。子 css 没有高度,这允许它根据 innerHTML 的高度进行扩展和收缩。我正在以编程方式将 HTML 标记填充到孩子的 innerHTML 属性中。
我想在孩子拥有它的标记后将父母的高度设置为与孩子的高度相匹配。我该怎么做呢?我试过了:
childDiv.innerHTML = content;
childDivObject = $(childDiv);
parentDivObject = $(parentDiv);
parentDivObject.css({
"height" : childDivObject.height() + "px"
});
但这不起作用。我错过了什么?
更新 0
更多上下文。此代码用于用户点击时出现/消失的弹出窗口。这是CSS。这里没有很多事情发生:
// parent
.parent {
position: absolute;
top: 0;
left: 0;
width: 350px;
display: none;
}
// child
.child {
position: absolute;
top: 5px;
left: 5px;
right: 25px;
}
父母有 display:none 是否是问题的一部分?如果相关,我正在使用 jQuery show()/hide() 方法。
【问题讨论】:
-
您应该检查每个 HTML 标记插入孩子的高度,然后将高度添加到父 parentDiv.height(childDiv.height());
-
既然你用的是jquery,你试过
childDiv.html(content)吗?插入html后,父级将与子级一起展开而没有问题 -
您是否在单击以显示父级时将内容插入到子级 div 中?
-
jQuery 不是这里的问题。问题是:为什么在 innerHTML 填充了标记并正确呈现后,我的 div 报告的高度为 0。
-
问题出在绝对定位的 2 个元素上。所以子元素在父元素中不占空间