"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > Why Does My Floated Div Not Resize the Subsequent Div?

Why Does My Floated Div Not Resize the Subsequent Div?

Published on 2024-11-08
Browse:798

Why Does My Floated Div Not Resize the Subsequent Div?

Mystery of Float Not Resizing Div

When using CSS float, the assumption is that subsequent elements will align left rather than flowing onto a new line. However, in some scenarios, such as the example provided, the following div continues to span the entire width instead of starting to the right of the first div.

To understand this behavior, we delve into the intricacies of float positioning. When an element is floated (in this case, the .inline div), the content below it aligns with the right side of that element. However, the width of the containing block established by the subsequent element (the .yellow div) is still preserved.

This behavior is outlined in the CSS spec: block boxes not positioned flow vertically as if the float did not exist. However, line boxes next to the float are shortened to accommodate the float's margin box.

Therefore, if a block-level element (like .yellow div) has a background, it will extend through the floated element.

The Resolution

According to CSS level 2.1, elements with certain properties (block-level replacements, elements establishing a new block formatting context) must not overlap the margin box of any floats in the same context. Adding an "overflow" property other than "visible" to the .yellow div prevents it from overlapping the floated element.

When Overlapping Can Be Useful

It's important to note that overlapping can be beneficial in situations where the content after the floated element is long enough to continue normally. Restricting the content by default could result in it not flowing under the floated element.

Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3