0

我有一个没有设置宽度的 div,所以它是 0。在里面我附加了另一个带有文本的 div。一切都是绝对的,我无法改变。发生的情况是:在 safari 中我得到 30 和 30,在 Firefox 中我得到 0 和 30。有没有办法解决这个问题?我需要我的父 div 宽度具有孩子的宽度 + 它的 x 位置。

var d = document.createElement("d");
    d.style.position = "absolute";
    document.body.appendChild ( d );

    var c = document.createElement("s");
        c.style.position = "absolute";
        c.innerHTML = "Blah";
    d.appendChild ( c );

    console.log ( d.scrollWidth );
    console.log ( c.scrollWidth );
4

1 回答 1

2

如果两个元素都必须设置为 position: absolute 那么你就很不走运了。

使用绝对定位会将元素从文档流中移除,这意味着父 div 没有子 div 宽度的概念。如果您将子级更改为相对而将父级保留为绝对,那么您将看到所需的正确拉伸(因为即使文档的其余部分无法“看到”父级将能够“看到”子级“父母)

于 2012-05-03T22:00:42.403 回答