2009-04-24 20 views
1

は私が相対位置divを展開して絶対位置divをすべて含むようにするにはどうすればよいですか?

<body><div id="a"><div id="b">some content</div></div>more content<body> 

のようなものを持っていると私はあることを行っているどのくらいの高さ「一部のコンテンツ」を知らないと言います。しかし、私は#bの位置を決めました:絶対位置と#aの位置を決めました:相対位置#bの相対位置は#aの左上隅です。 #aを展開して "より多くのコンテンツ"がプッシュされる#bを含むようにする方法はありますか?

ありがとう

+0

#bの位置は#aの位置ではなく、その原点の位置からの相対位置です。両方のポジションが同じであることはちょうど偶然のことです。 – Gumbo

答えて

2

アブソリュートを相対的なものに置き換えると、このjsFiddleのようなものが得られます。

0

いいえ、絶対位置指定は、ドキュメントフローから要素を削除します。親タグと兄弟タグには、絶対配置された要素が重複しているかどうかを知る方法がありません。

1

#bの位置関係のように聞こえる場合があります。

#bは#aの最初の要素ですので、#aの左上隅には自然に現れます。したがって、相対位置は絶対位置と同じポイントを基準にして配置されます。また

、その後、あなたが位置するので

#b{position:relative;top:30px;margin-bottom:30px;} 

コンテンツは#Bの底にクリアされます設定し、あなたが30pxでダウン#Bプッシュすると言う:相対的な高さに等しいコンテンツの流れにブロックを残し#b + 30pxの

2

実際にはdiv:#bにpos:absを指定する必要がないので、デフォルトではdiv#aの左上に設定されます。

div要素のpos:relを使用していても、div要素の高さを増やすだけであれば、CSS要素の位置は通常のマークアップの範囲外になります。あなたもそれを適用したかもしれません。

あなたの後ろのことを達成する方法はありますが、それはJavaScriptを使用することに依存します。

関連する問題