我正在为 CMS 构建一个 html/javascript 主题设计器。元素是绝对定位的,可以通过鼠标移动/调整大小,和/或包含可编辑的文本,其高度可能由行数决定。但是我遇到了一个问题,即父元素的高度没有扩展到包括其绝对定位的子元素。
最少的代码(也在JSFiddle上):
<style>
div.layer { position: absolute }
div.layer1 { width: 400px; border: 1px solid #ccc }
div.layer2 { top: 15px; left: 100px; width: 100px; border: 1px solid blue }
</style>
<div class="layer layer1">container should expand to the bottom of the child.
<div class="layer layer2" contentEditable>Child with<br/>editable text.</div>
</div>
仅 CSS 的解决方案是理想的,我不关心旧浏览器。但我主要是在寻找任何方法来防止需要使用创建的主题在每个页面上运行 javascript 来设置它们的高度(因为具有相同主题的页面可能有不同数量的文本)。
已经有一些类似的问题,但他们接受的答案(例如,不使用绝对定位)在我的情况下不起作用。除非有一种方法可以拥有多层可拖动/可调整大小的元素而不是位置:绝对。