0

ブロック要素にoverflow-yを追加すると、幅が狭くなるのと同様の問題が発生します。、しかし、右のdivを水平方向の中央に配置したい。だから私は「マージン:自動」を持っています。右側のdivに

これは、右側のdivに「overflow-y:auto」(またはスクロール)を追加するまでは正常に機能しました。これまでは、余白はページ幅全体から測定されていました。追加後、左divの右端から測定するため、ページの中央に配置されるのではなく、ページの残りの部分の中央に配置されます。

問題の簡単なデモ:

http://dev.bridgebase.com/barmar_test/demo-overflow.php

4

2 に答える 2

4

overflowにプロパティを追加するときdivは、新しいフォーマットコンテキストを定義します。この主題に関するMDNドキュメントに記載されているように、float影響は特定のフォーマットコンテキストに限定されます。フォーマットコンテキストは、前述のドキュメントにリストされている特定のルールによって定義されます。

position: absoluteは解決策ですが、絶対的に配置された要素は、最後に配置された祖先(つまり、 (デフォルトの)positionとは異なる値を持つ属性を持つ要素)に対して相対的に配置されることを理解する必要があります。staticまた、MDNを見て、この概念を完全に理解してください。

フロート要素について詳しく説明しているSitePointのこの記事を読むことができます。より具体的には、マルチカラムレイアウトのフローティングと絶対ポジショニングのセクションに関心があるはずです。

于 2012-12-19T08:24:47.377 に答える
2

position:absolute; を追加できます。サイドバーに移動して、2 番目の例と同じ効果を実現します。

于 2012-07-03T03:20:52.243 に答える