CSS-Block float left
Habe ich diese html-Datei
<div class="con" style="width:100px;height:200px;">
1
</div>
<div class="con" style="width:100px;height:200px;">
2
</div>
<div class="con" style="width:100px;height:400px;">
3
</div>
<div class="con" style="width:100px;height:400px;">
4
</div>
<div class="con" style="width:100px;height:100px;">
5
</div>
<div class="con" style="width:100px;height:100px;">
6
</div>
<div class="con" style="width:100px;height:100px;">
7
</div>
<div class="con" style="width:100px;height:100px;">
8
</div>
Und ich will mit diesem html-haben zu diesem Ergebnis :
Aber ich Schreibe das css :
<style>
body {
width:440px;
height:440px;
}
.con{
float:left;
background:#bebebe;
margin:1px;
}
</style>
Und ich bekam dieses Ergebnis! 🙁
Ich wiederhole, dass ich das Ergebnis das erste Bild mit nur der html-code, den ich geschrieben habe.
- Sie sind mit dem CSS-Regeln falsch. Id sollte eindeutig sein, um ein div, sollten Sie eine Klasse verwenden, wenn Sie möchten, verschiedene div-Elemente haben den gleichen Stil.
- Ich weiß, aber jetzt ist es nicht wichtig!!!!!!
- Nein, es ist immer wichtig.
- Hahaha du hast Recht, aber jetzt würde ich gerne in der Lage sein dieses problem zu lösen, die nur mit dem linken Schwimmer. Warum ich Schreibe, eine bestimmte Sache, die muss nur float left.
- ja, es ist wichtig; Ihr code ungültig ist, die bewirkt, dass Sie Probleme schließlich auch, wenn es jetzt funktioniert. Und dein problem viel einfacher zu lösen, wenn Sie die Verwendung von Klassen richtig anstelle von ids.
- Anstatt so arrogant, mit Klassen, die Sie kennen würde es mein problem lösen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
ändern Sie die
width
desbody
zu408px;
dannfloat:right;
die div 3 & 4.demo: http://jsbin.com/imire5
Aktualisierte demo mit float left nur: http://jsbin.com/imire5/2
Erstens, Sie sollten nicht mehrere Elemente mit der gleichen
id
. Dies ist, wasclass
ist für.id
sollte innerhalb der Seite eindeutig sein.Die Lösung zu deinem problem ist, schweben die zwei hohen Blöcken die
right
und alles andere zu denleft
.Dies wird natürlich nur funktionieren, wenn die Boxen in einen container (also der Körper) das ist genau die richtige Breite für alle vier, sonst werden Sie nur am Ende mit einem Loch in der Mitte Ihres Layouts.
Das Problem ist, dass, da haben Sie die gleiche ID für alles, man kann nicht einfach festlegen, welche float right und welche float left.
Gibt es Möglichkeiten, es zu tun, aber die richtige Lösung wäre die Verwendung von Klassen.
Wenn Sie absolut nicht (oder wird nicht) ändern Sie den HTML-code, es gibt noch eine andere Lösung, die ich vorschlagen kann - die CSS -
[attr]
selector können Sie angeben, eine andere CSS-Stile für Elemente mit bestimmten Attributen. In diesem Fall könnten Sie es verwenden, um wählen Sie aus der hohen Blöcke und schweben Sie Recht.Dies betrifft nur die Elemente, die
id="con"
und wo diestyle
Attribut enthältheight:400px;
.Bitte beachten Sie jedoch, dass die
[attr]
selector funktioniert nicht auf älteren version von Internet Explorer verwenden, so müssen Sie möglicherweise excersise Vorsicht wenn Sie sich entscheiden, es zu benutzen.Diese Lösung beinhaltet auch die schwimmenden bestimmte Elemente auf der rechten Seite, die Sie scheinen tot zu sein vor, aber es ist immer noch die einzige praktikable CSS-only Lösung.
float:right
dem hohen block wenn.Das grundlegende Problem, das Sie haben, ist, dass CSS -
float
arbeitet in einer Weise, die anders ist, wie Sie es wollen zu arbeiten.Anderen Antwort zu deinem problem könnte sein, Javascript zu verwenden, um es zu hacken.
Es ist ein jQuery-plug-in namens Mauerwerk, die aussieht wie es das tut, was Sie suchen. Sie können
float:left;
für alles, und verwenden Sie dann Mauerwerk zu schließen die Lücken.Es würde bedeuten, sich auf eine Lösung, die nicht vollständig CSS-basiert, obwohl, die ist wahrscheinlich nicht ideal - vor allem, da ich schon eine funktionierende CSS-Lösung.
(auch wenn Sie beginnen mit Javascript, Sie definitiv reparieren müssen Sie Ihre
id
vsclass
problem-Javascript verleugnen Sie, wenn Sie alle diese Elemente mit den gleichenid
)float:downwards;
Art von layout. Soweit ich sagen kann, es ist so nah wie Sie gehen, um zu Ihrem vorgesehenen layout ohne Verwendungfloat:right;
auf den hohen blocks wie pro die anderen Antworten.