Home > Article > Web Front-end > Solution to the problem of collapse of parent element caused by float
The solution to the collapse of the parent element caused by float floating is: set a height for the parent element, set an empty div after the last child element and use clear to clear the float, set overflow: hidden for the parent element, and add after pseudo-class
When laying out web pages, the float attribute is often used. However, when the child element under the parent element is set to float, it will cause the parent element to collapse. Next, in the article, we will introduce in detail how to solve the problem of parent element collapse due to floating. It has a certain reference effect and we hope it will be helpful to everyone
[Recommended course: CSS Tutorial】
After setting the background color to the parent element of an element, After setting float for the child element, you will find that the background color of the parent element disappears, and when the parent element has a border, you will find that the floating element cannot open the border.
Example: No float is set for li
<ul style="background: pink;border: 1px solid #ccc"> <li>PHP中文网</li> <li>PHP中文网</li> <li>PHP中文网</li> <li>PHP中文网</li> </ul>
Rendering:
After setting the float
<ul style="background: pink;border: 1px solid #ccc"> <li style="float: left;list-style: none;">PHP中文网</li> <li style="float: left;list-style: none;">PHP中文网</li> <li style="float: left;list-style: none;">PHP中文网</li> <li style="float: left;list-style: none;">PHP中文网</li> </ul>
Rendering
As can be seen from the picture above, when the child element is set to float, the parent The element's content is not stretched. That is to say, after the element is set to float, it is no longer within the jurisdiction of the entire document flow. Then its height that previously existed in the parent element will no longer exist with the float. At this time, the parent element will default to having no content in it (prerequisite It means that a fixed height is not set for the parent element. If the parent element itself has a fixed height, this situation will not occur) and collapse will occur
Solution to the collapse of the parent element:
(1) Add a height to the parent element
The height cannot be confirmed in this method, and you need to try to set it multiple times
<ul style="height:200px;background: pink;border: 1px solid #ccc">
(2) Add a space after the last child element div, add the style clear to it and clear the floats on both sides;
<div style="clear:both;"></div>
(3) The parent element sets overflow: hidden;
<ul style="background: pink;border: 1px solid #ccc;overflow: hidden;">
(4) The parent element adds the after pseudo-class;
.parent:after{ content:""; display:block; clear:both; }
Summary: The above is the entire content of this article, I hope it will be helpful to everyone.
The above is the detailed content of Solution to the problem of collapse of parent element caused by float. For more information, please follow other related articles on the PHP Chinese website!