CSSではoverflow:hidden
、フローティング子の高さで拡張できるように、が親コンテナに設定されています。
しかし、それと組み合わせると、別の興味深い機能もありmargin: auto
ます...
PREVIOUS兄弟がフローティング要素である場合、実際にはそれと並置されて表示されます。つまり、兄弟がその場合、float:left
コンテナfloat:none overflow:hidden
は兄弟の右側に表示され、改行は表示されません。通常のフローに浮かんでいるかのように表示されます。前の兄弟がfloat:right
その場合、コンテナは兄弟の左側に表示されます。このコンテナのサイズを変更すると、フローティング要素の中央に正確に表示されます。あなたが以前の2人の兄弟、1があれば言ってやるがfloat:left
他にfloat:right
、コンテナは2わたってるしき中央に表示されます。
だからここに問題があります...
子供をマスキングせずにそのタイプのレイアウトを維持するにはどうすればよいですか?
Web全体をグーグルで検索するclear:both
と、コンテナを拡張する方法がわかります...しかし、左/右の前の子の中心を維持するための代替ソリューションは見つかりません。コンテナを作成すると、コンテナoverflow:visible
は突然フローティング要素のレイアウトフローを無視し、フローティング要素の上に階層化されて表示されます。
だから質問:
overflow:hidden
レイアウトを維持するためにコンテナが必要です...
子供たちがマスクされないようにするにはどうすればよいですか?コンテナの外側で、子を親に対して絶対的に配置する必要があります。
または
overflow:visible
コンテナの外側で親に対して子を絶対に配置できるようにするにはどうすればよいですか...まだ兄弟のfloat-like-layout-flowを保持しますか?