2013-08-09 19 views
7

Ich machte ein paar Sachen mit float und clear. Ich habe keinen Unterschied gefunden mit float: none; oder Gibt es irgendwelche? Kann jemand den Unterschied mit einem Beispiel illustrierenGibt es einen Unterschied zwischen float: none und clear: none

+2

Sowohl "float" als auch "clear" haben einen Standardwert von "none". Sie sehen also keinen Effekt einer Kombination, es sei denn, Sie überschreiben einen anderen Wert. – Eric

+0

Ich weiß nicht, ob das hilft: http://jsfiddle.net/QM4mm/2/, obwohl es die Dinge komplizieren könnte, je nachdem, was mit dem Inhalt von DIV Four passiert. – hungerstar

+0

@hungerstar Wie, die vierte div ist float: keine; Die vierte Div beginnt mit der gleichen Top-Position wie die erste Div. habe ich recht? Ich denke, warum der Inhalt "Vier-Float-NONE" unterhalb der div geschrieben wird? Können Sie bitte erklären – shubendrak

Antwort

15

Float:none; teilt den Elementen mit, dass Sie nicht möchten, dass es schwebt.

Clear sagt anderen Elementen, ob sie floaten dürfen oder nicht, und im Falle von keiner, erlauben Sie Floats auf beiden Seiten. Deshalb, wenn Sie clear:both; verwenden, stoppt das Floaten.

+0

Ich habe diese Definition gelesen. Ich sage, dass ich keinen Unterschied in der Wirkung gefunden habe, während ich clear verwende: none und float: none. können Sie den Unterschied mit einem Beispiel illustrieren. – shubendrak

+1

Dann gibt es keinen Unterschied, und nichts zu illustrieren. Ihr Fragentitel fragt nach dem Unterschied zwischen den beiden Eigenschaften, und darum geht es in dieser Antwort. – BoltClock

+2

http://codepen.io/anon/pen/srIuf - check out, wenn Sie clear: none verwenden, wie die Elemente im zweiten Container weiterhin unter dem nicht schwebenden Element schweben - ändern Sie das in 'clear: both;' und Sie kann sehen, wie klar über die enthaltenen Elemente gesprochen wird und Floaten über einzelne Elemente spricht. –

4

Sie sind zwei völlig verschiedene Dinge.

float wird ein Element nach links oder rechts (der Parameter) innerhalb seiner Eltern ausrichten. float: none tut nichts, es sei denn, das Element schwebte bereits. Das Schwebekörperelement verliert seine automatisch gefüllte Breite und reduziert es auf so klein wie möglich.

clear wird sicherstellen, dass es keine schwebenden Elemente auf der Seite gibt, die Sie erzählen. Wenn es einen gibt, wird er nach unten bewegt, bis keiner mehr in der angegebenen Richtung ist. clear: both prüft dies für beide Richtungen.

Hier ist eine Illustration, um Ihnen zu zeigen, was floats und clears tun.

enter image description here

+0

danke, aber mein Zweifel war mit 'float: none' und' clear: none' nicht mit 'clear: left' – shubendrak

+0

@Shubendra: None ist der Standardwert, und konnte nur verwendet werden, um eine zuvor deklarierte clear zu übersteuern. – Broxzier

+0

Wenn ich 'clear: none' schreibe für das letzte div, was passieren wird – shubendrak

1

Float keine stoppt ein Element wraping um benachbarte schwimmende Kind-Elemente zu stoppen. Standardmäßig haben alle Elemente float none. Löschen Sie beide Stoppelemente, um alle schwebenden untergeordneten Elemente von links oder rechts zu umschließen. Für weitere Details und Live-Beispiele, besuchen Sie mein Tutorial, http://tutorial.techaltum.com/css_float.html.

2

Es scheint, als ob Sie das zugrundeliegende Konzept dessen, was float tut, nicht verstanden haben. Jeder Wert von float außer none, wenn er einem Element auf Blockebene zugewiesen wurde entfernt dieses Element aus dem Dokumentfluss. Angenommen, Sie haben zwei verschiedene div Elemente, eines mit float:none und das andere mit clear:none. Nun könnte der spätere entweder in der Dokumentfluss oder aus des Dokumentflusses sein - abhängig von seinem Gleitkommawert. Ich präsentiere Ihnen zwei Beispiele.In der ersten Version der Red Absatz verwendet float:none und in der zweiten Version der Red Absatz verwendet clear: none

Red Absatz mit float:none:

#usefloatnone 
 
{ 
 
    border: 1px dotted black; 
 
    background-color: red; 
 
    width: 1050px; height: 350px; 
 
    
 
    float: none; 
 
} 
 

 
#useclearnone 
 
{ 
 
    border: 1px dotted black; 
 
    background-color: red; 
 
    width: 1050px; height: 200px; 
 
    float: right; 
 
    
 
    clear: none; 
 
} 
 

 
#normal 
 
{ 
 
    border: 1px dotted black; 
 
    width: 1050px; height: 100px; 
 
}
</style> 
 

 
    </head> 
 
    <p id="usefloatnone"> Red paragraph </p> 
 
    <p id="normal"> Normal paragraph </p> 
 
    <p id="normal"> Normal paragraph </p> 
 
    <p id="normal"> Normal paragraph </p> 
 
</html>

Red Absatz mit clear:none:

#usefloatnone 
 
{ 
 
    border: 1px dotted black; 
 
    background-color: red; 
 
    width: 1050px; height: 350px; 
 
    
 
    float: none; 
 
} 
 

 
#useclearnone 
 
{ 
 
    border: 1px dotted black; 
 
    background-color: red; 
 
    width: 1050px; height: 200px; 
 
    float: right; 
 
    
 
    clear: none; 
 
} 
 

 
#normal 
 
{ 
 
    border: 1px dotted black; 
 
    width: 1050px; height: 100px; 
 
}
<p id="useclearnone"> Red paragraph </p> 
 
    <p id="normal"> Normal paragraph </p> 
 
    <p id="normal"> Normal paragraph </p> 
 
    <p id="normal"> Normal paragraph </p>

können Sie den Unterschied in der Wirkung sehen, während clear: none und float: none jetzt verwenden. Ich empfehle Ihnen, zunächst das Konzept von float und clearfrom this tutorial by w3.org community zu verstehen. Sie verwenden clear Eigenschaft für Elemente, wenn Sie alle schwebenden Elemente um/(normalerweise links oder rechts davon) löschen möchten.

Verwandte Themen