Home  >  Article  >  Web Front-end  >  Solution to the problem of collapse of parent element caused by float

Solution to the problem of collapse of parent element caused by float

清浅
清浅Original
2019-04-17 10:38:473941browse

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

Solution to the problem of collapse of parent element caused by float

[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:

Solution to the problem of collapse of parent element caused by float

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

Solution to the problem of collapse of parent element caused by float

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn