即使我有孩子,firefox和opera中的父div宽度也是0

时间:2012-05-03 21:44:00

标签: javascript css html width

我有一个没有设置宽度的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 );

1 个答案:

答案 0 :(得分:2)

如果两个元素必须设置为position:absolute,那么你几乎没有运气。

使用绝对定位会从文档流中删除元素,这意味着父div没有子div宽度的概念。如果你将孩子改为亲戚而将父母保持为绝对,那么你将看到你想要的正确拉伸(因为父母将能够“看到”孩子,即使文件的其余部分不能“看到” “父母”