Home  >  Article  >  Web Front-end  >  What are the ways to clear floats in css? Introduction to four methods of css float clearing

What are the ways to clear floats in css? Introduction to four methods of css float clearing

不言
不言Original
2018-09-14 13:37:443166browse

css clearing floats is often seen in css layout, so how to clear floats in css? This article will introduce to you how to clear floats in css, and briefly introduce why you should use css floats.

Our last articleWhat does css floating mean? Why does css need to clear floats? It has been mentioned in

that the reason for using CSS floating is because some elements in CSS are block-level elements, and they will automatically start a new line. There is also another type of inline elements, which are inline elements, and they will remain with the previous content. Displayed in "one row"; but sometimes we need to change this layout, which requires using CSS floating. But when "height collapse" occurs, floats need to be cleared. So, what are the methods to clear floats in CSS?

Let’s take a look at the four methods of clearing floats in CSS.

Css method to clear floating elements:

Use an empty element with clear attribute

Use an element after the floating element Empty elements such as a1b9f5956cb1dd834e31c3b34b29c1aa16b28748ea4df4d9c2150843fecfba68, and assign the .clear{clear:both;} attribute in CSS to clear the float. You can also use1e83b39052d3760a636088da66f8a446 or 9e9608c45e9340a126bcb009bcb97e71 to clean.

.news {
  background-color: gray;
  border: solid 1px black;
  }
.news img {
  float: left;
  }
.news p {
  float: right;
  }
.clear {
  clear: both;
  }
<div class="news">
<img src="news-pic.jpg" />
<p>some text</p>
<div class="clear"></div>
</div>
Description:

Advantages: simple, less code, good browser compatibility.

Disadvantages: A large number of unsemantic html elements need to be added, the code is not elegant enough, and it is not easy to maintain later.

Css method two to clear floating elements:

Use the overflow property of CSS

Add overflow to the container of floating elements: hidden; or overflow:auto; can clear the float. In addition, hasLayout needs to be triggered in IE6, such as setting the container width and height for the parent element or setting zoom:1.

.news {
  background-color: gray;
  border: solid 1px black;
  overflow: hidden;
  *zoom: 1;
  }
.news img {
  float: left;
  }
.news p {
  float: right;
  }
<div class="news">
<img src="news-pic.jpg" />
<p>some text</p>
</div>
Description:

After adding the overflow attribute, the floating element returns to the container layer, raising the height of the container, achieving the effect of cleaning up the floating elements.

Advantages: There are no structural and semantic problems, and the amount of code is very small

Disadvantages: When the content increases, it is easy to cause the content to not wrap automatically, causing the content to be hidden, and elements that need to overflow cannot be displayed; In 2004, POPO discovered that overflow:hidden would cause the middle button to fail, which is unacceptable to me as a multi-tab browsing controller. So don’t use it.

Css method three to clear floats:

Use adjacent element processing

Do nothing , add the clear attribute to the element behind the floating element.

.news {
  background-color: gray;
  border: solid 1px black;
  }
.news img {
  float: left;
  }
.news p {
  float: right;
  }
.content{
  clear:both;
  }
<div class="news">
<img src="news-pic.jpg" />
<p>some text</p>
<div class="content"></div>
</div>
Css clear floating method four:

Use CSS:after pseudo-element

Combined with:after pseudo-element (Note that this is not a pseudo-class, but a pseudo-element, which represents the nearest element after an element) and IEhack, which are perfectly compatible with all major current mainstream browsers. IEhack here refers to triggering hasLayout.

Add a clearfix class to the container of floating elements, and then add a :after pseudo-element to this class to add an invisible block element (Block element) to the end of the element to clean up the floating elements.

.news {
  background-color: gray;
  border: solid 1px black;
  }
.news img {
  float: left;
  }
.news p {
  float: right;
  }
.clearfix:after{
  content: "020"; 
  display: block; 
  height: 0; 
  clear: both; 
  visibility: hidden;  
  }
.clearfix {
  /* 触发 hasLayout */ 
  zoom: 1; 
  }
<div class="news clearfix">
<img src="news-pic.jpg" />
<p>some text</p>
</div>

Description: An invisible space "020" or dot "." is added at the end of the internal element of the container through CSS pseudo-element, and the clear attribute is assigned to clear the float. It should be noted that for IE6 and IE7 browsers, a zoom:1; must be added to the clearfix class to trigger haslayout.

Finally: For the specific content of some attributes in the above article, please refer to css manual
.

Related recommendations:

Summary of common methods for clearing floats in CSS_Experience exchange

css Don’t forget to clear floats clear:both_Experience exchange

Float (floating) related skills article in CSS_Experience exchange

###

The above is the detailed content of What are the ways to clear floats in css? Introduction to four methods of css float clearing. 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