CSS: Drei-Spalten-Layout-Problem

7

Wie kann ich das ändern:

%Vor%

Also ist "rechts" vertikal mit "links"?

Hier sieht meine schlechte CSS wie gerendert:

%Vor%

Danke!

    
morgancodes 10.02.2009, 18:43
quelle

10 Antworten

21

Wenn Sie ein 'float: right' verwenden, machen Sie es als erstes in der Zeile:

%Vor%

Sonst fällt es immer in die nächste Textzeile.

  

aber warum !!!!!

(1) Wenn Sie angefangen haben, statischen Text in eine Zeile zu schreiben, haben Sie eine unbestimmte Breite, in die ein floated-Element eingefügt werden kann. Sagen Sie, Sie haben geschrieben:

%Vor%

Stellen Sie sich nun vor, Sie fangen an, das Fenster so zu verkleinern, dass "abc abc abc" nur in die erste Zeile passt. Jetzt triffst du auf ein Float und versuchst, es in die Zeile aufzunehmen, in der du gerade bist. Aber es passt nicht: um es anzupassen, müssten Sie "abc xyz xyz" auf der Leitung haben, das restliche "abc" auf die nächste Zeile umfliessen lassen. Aber! Jetzt haben Sie den Einfügepunkt des Floats um eine Zeile nach unten verschoben, sodass der Float ebenfalls um eine Linie nach unten verschoben werden muss. Aber! Jetzt ist die erste Zeile nicht richtig umgebrochen, weil Platz für drei "abc" s ist, aber die Zeile wurde vorzeitig beendet, um Platz für einen Float zu machen, der tatsächlich weiter unten auf der Seite vorkommt ...

Der CSS-Standard löst diese logische Sackgasse, indem er auf einer Zeile mit Inline-Text einen Fließkommawert erzeugt, bevor er auf die nächste Zeile wartet.

(2) Weil das Netscape vor vielen Jahren mit <img float="right"> gemacht hat.

    
bobince 10.02.2009, 18:59
quelle
3

Ich habe was du brauchst *:

%Vor%

Danke mir später!

* Haftungsausschluss: Ich bin nur 95% ernst.

    
Paolo Bergantino 10.02.2009 18:54
quelle
2

Dies funktioniert ohne Neuanordnung der Reihenfolge des Inhalts

%Vor%

Sie können die 33% auch fallen lassen und sie für Ihr Design repräsentativ machen, oder sogar eine feste Breite für die Spalten verwenden. Verwenden Sie in diesem Fall IDs anstelle von Klassen.

    
MrChrister 10.02.2009 19:14
quelle
1

Machen Sie middle a div , schweben Sie sie nach links und geben Sie die Breite für alle drei Container an. Außerdem migst du die Umgebung div overflow: auto , sonst wird sie auf sich selbst reduziert.

    
Konrad Rudolph 10.02.2009 18:50
quelle
1

Sie sprechen über den "heiligen Gral" wie in diesem A List Apart-Artikel

    
dirq 10.02.2009 19:41
quelle
1
0

"middle" muss in einem eigenen div sein oder kann dein Display abwerfen

    
Chris Ballance 10.02.2009 18:46
quelle
0

Versuchen Sie etwas von der Art:

%Vor%     
Andreas Grech 10.02.2009 18:51
quelle
0

Aktualisiert:

%Vor%     
Paul G. 10.02.2009 18:48
quelle
0

Um zu erreichen, was Sie versuchen, sollten Sie die rechte Spalte vor die mittlere Spalte stellen.

%Vor%

Weil die rechte Spalte relativ zu ihrem Kontext positioniert ist, der eine Linie unterhalb des mittleren Inhalts ist.

    
mbillard 10.02.2009 19:13
quelle

Tags und Links