Ich werde Antwort eine detaillierte und erklärt versuchen und machen. Ein schwebendes Element schwebt aus seiner ursprünglichen Position in der Strömung. Grundsätzlich wirkt sich der Floating-Effekt nur auf Elemente aus, die in der HTML-Struktur nach deklariert sind.
In Ihrem Fall wird das Recht-Floating-Element nach dem Nicht-Floating-Element deklariert. So ist es normal theright
erscheint unter theone
und Sie sehen den schwebenden Effekt nicht.
Um ein Element auf der rechten Seite eines anderen zu floaten, müssen Sie es vor diesem anderen deklarieren. Wie folgt aus:
<div class="theright">two</div>
<div class="theone">one</div>
<style>
.theright {
float: right;
}
</style>
Beachten Sie, dass dies funktioniert, muss theright
Element als theone
größer. Andernfalls wird theone
vollständig theright
maskieren seinen Inhalt aus der Box schieben. Dies ist so, weil ein schwebendes Element aus dem Fluss herauskommt und über die anderen Elemente schwebt, wodurch die schwebenden Blöcke "vermieden" werden.
Es gibt viele andere Möglichkeiten, um das gleiche Ergebnis mit einer anderen Zielsetzung zu erhalten:
theone
Schwimmer auf der linken Seite, anstatt machen (Abfahrt theright
als Grundblockelement)
- beide Elemente machen Inline-Blöcke und geben Sie entsprechende Breiten
- für nur zwei Elemente, es ist nicht notwendig, aber wenn Sie 3 oder mehr Elemente nebeneinander benötigen, können Sie sie alle auf der linken Seite schweben lassen (oder rechts in umgekehrter Reihenfolge deklarieren, abhängig von dem endgültigen Layout, das Sie wollen)
- usw.
Ich habe float zu .theone hinzugefügt, funktioniert einfach nicht. –
.one * ist * schwimmend, aber .two ist ein nicht-schwebender Block, also kann es unmöglich rechts von .one sein. – BoltClock