Wie kann ich mehrere Divs mit Float und nicht mit absoluter Positionierung übereinander stapeln?

8

Ich schreibe alles um und bewege mich von absoluten Positionen weg und setze stattdessen Floats ein, um die Dinge so zu positionieren, wie ich sie haben will.

Die Frage ist nun, wie kann ich mehrere divs übereinander legen? Der Benutzer wird in der Lage sein, zwischen diesen Divs irgendwie zu wechseln.

Danke

Bearbeiten: Der Grund, warum ich mich von der absoluten Position entferne, ist, dass ich möchte, dass mein div immer noch ein Kind seines Elternteils ist. Wenn mein div erweitert wird, möchte ich, dass das Eltern-div ebenfalls erweitert wird.

    
Roozbeh15 24.01.2012, 02:33
quelle

4 Antworten

16

float überlappt nicht mit anderen float-Objekten in demselben Container. Sehen Sie hier für ein Beispiel für drei aufeinanderfolgende gefloatete Objekte, um zu sehen, wie sie sich nicht überlappen.

Wenn Objekte sich überlappen sollen, müssen / müssen Sie die absolute Positionierung verwenden. Sie können die Positionierung relativ zum übergeordneten Objekt verwenden, indem Sie das übergeordnete Element auf position:relative; und das untergeordnete Element auf position: absolute; setzen. Siehe hier für ein Beispiel überlappender Objekte mit absoluter Positionierung relativ zum übergeordneten Objekt.

Wenn Sie versuchen, nur eines dieser Objekte gleichzeitig anzeigen zu lassen, legen Sie einfach die nicht angezeigten Objekte auf display: none fest, und sie nehmen im Seitenlayout keinen Platz ein. Sie müssen keine Float- oder absolute Positionierung verwenden.

    
jfriend00 24.01.2012, 02:36
quelle
5

Ich bin unerfahren in CSS Selektoren, aber ich bin sicher, dass Sie etwas finden können, das besser funktioniert, als jede Klasse spezifisch zu benennen:

Ссылка

HTML:

%Vor%

CSS:

%Vor%     
mowwwalker 24.01.2012 02:42
quelle
2

Ich sehe nicht, wie Sie Benutzer ohne Javascript zwischen den DIVs wechseln lassen können.

Vielleicht belassen Sie das erste div mit dem statischen Standardlayout und lassen es für die anderen nicht anzeigen. Verwenden Sie JavaScript, um nur jeweils ein div anzuzeigen.

    
dave 24.01.2012 13:21
quelle
-1

Sie können float: left; verwenden, aber persönlich finde ich es einfacher, stattdessen display: inline-block; zu verwenden.

    
Niet the Dark Absol 24.01.2012 02:35
quelle

Tags und Links