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 に答える