891 Stimmen

Welche Methoden von "Clearfix" kann ich anwenden?

Ich habe das uralte Problem eines div ein zweispaltiges Layout umhüllen. Meine Seitenleiste ist schwebend, so dass mein Container div den Inhalt und die Seitenleiste nicht umbrechen.

<div id="container">
  <div id="content"></div>
  <div id="sidebar"></div>
</div>

Es scheint zahlreiche Methoden zur Behebung des Clear-Bugs in Firefox zu geben:

  • <br clear="all"/>
  • overflow:auto
  • overflow:hidden

In meinem Fall ist die einzige, die korrekt zu funktionieren scheint, die <br clear="all"/> Lösung, die ein wenig schmuddelig ist. overflow:auto gibt mir hässliche Bildlaufleisten, und overflow:hidden muss sicherlich Nebenwirkungen haben. Außerdem sollte der IE7 aufgrund seines fehlerhaften Verhaltens anscheinend nicht unter diesem Problem leiden, aber in meiner Situation leidet er genauso wie Firefox.

Welche Methode, die uns derzeit zur Verfügung steht, ist die robusteste?

1 Stimmen

Ich benutze jqui.net/tips-tricks/css-clearfix es hilft mir, den Punkt zu verstecken :)

1 Stimmen

Was ist mit IE 6 und IE 7? Sie folgen nie dem richtigen Weg, Dinge zu bereinigen.

0 Stimmen

Besteht nach einem Jahr die Möglichkeit, die korrekte Antwort auf den modernen dreizeiligen Clearfix zu überarbeiten? hier wie sie in den bekannten Frameworks Bourbon und Inuit.css verwendet wird? Siehe meine Antwort unten .

0voto

Hakan Punkte 3609

Sie können dies auch in Ihr CSS einfügen:

.cb:after{
  visibility: hidden;
  display: block;
  content: ".";
  clear: both;
  height: 0;
}

*:first-child+html .cb{zoom: 1} /* for IE7 */

Und fügen Sie die Klasse "cb" zu Ihrem übergeordneten Div hinzu:

<div id="container" class="cb">

Sie müssen Ihrem ursprünglichen Code nichts mehr hinzufügen...

-2voto

Torkel Punkte 3314

Haben Sie das schon probiert?

<div style="clear:both;"/>

Ich habe mit dieser Methode keine Probleme gehabt.

-2voto

Eric Punkte 380

Meine bevorzugte Methode ist es, eine clearfix Klasse in meinem css / scss Dokument wie unten zu erstellen

.clearfix{
    clear:both;
}

Und rufen Sie es dann in meinem Html-Dokument wie unten gezeigt auf

<html>
  <div class="div-number-one">
    Some Content before the clearfix
  </div>

  <!-- Let's say we need to clearfix Here between these two divs --->
  <div class="clearfix"></div>

  <div class="div-number-two">
    Some more content after the clearfix
  </div>
</html>

-3voto

Mohamed Aasif Punkte 59

Es ist so einfach clearfix löscht das Problem durch, wenn wir mit der float-Eigenschaften innerhalb der div-Element.Wenn wir zwei div-Elemente ein als float:left; und andere ein als float:right; wir können clearfix für die Eltern der beiden div-Element. Wenn wir uns weigern, clearfix zu verwenden, füllen sich unnötige Zwischenräume mit Inhalten darunter und die Struktur der Website wird unterbrochen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X