CSS - Wie div Blöcke unabhängig platzieren?

Laz-Y

Lieutenant
Registriert
Feb. 2007
Beiträge
604
Ich hab in meinem content Bereich 5 div Blöcke. Wie schaffe ich es, dass diese Blocke, je nachdem wie groß das fenster ist, sie untereinander oder nebeneinander platzieren?

Wenn das Fenster klein ist solls so aussehen:
A
B
C
D
E

Wenn das Browserfenster groß ist kanns dann so aussehen:
A
B C
D
E F

Wie geht das?
 
Äh... vielleicht stehe ich ja gerade nur auf dem Schlauch, aber ich denke, dass ist nur über Umwege machbar. Die Auflösung kannst du mit CSS nämlich nicht überprüfen.
Also du könntest zwei Stylesheets machen.
Zum Beispiel Bindest du das Stylesheet, wo alle Boxen untereinander sind, ganz normal ein. Danach überprüft du bspw. mit JavaScript die Auflösung des Browsers und bindest dann jenachdem noch das andere Stylesheet ein, welches die vorherigen Angaben dann teilweise überschreibt.
 
Automatisch wird das nicht gehen. Da musst du schon mit Javascript/DOM ran.
 
Eventuell kann es mit CSS funktionieren, wenn du die Divs, die nebeneinander liegen dürfen, in ein weiteres DIV legst, dem du mit CSS "display:inline" gibst.
 
das hört sich vernünftig an @ Cobinja
werd ich mal ausprobieren...
 
Das wird nicht funktionieren. Ein Inline-Element darf keine Block-Elemente enthalten. Wäre ja auch irgendwie unlogisch, oder? ;)
(Könnte allerhöchstens sein, dass die Browser das interpretieren könne, allerdings wäre die Lösung halt theoretisch Schwachsinn... Zumal ich mich nicht darauf verlassen würde, falls das schwachsinnigerweise im aktuellen Firefox und Internet Explorer funktionieren würde. Gibt ja auch noch unzählige andere Browser - von künftiger Versionen von FF & IE mal ganz abgesehen...)
 
geschieht das mit float: left nicht automatisch oder liege ich da ganz falsch? wenn ich das fenster verkleinere dann werden die divs automatisch untereinander angeordnet...

mfg
 
Aber durch float wird das Element sozusagen "rausgenommen aus dem normalen Elementfluss". Das heißt C und F bräuchten eine margin-left, damit sich die Elemente nicht überlappen. Damit würde es dann wieder nicht funktionieren.

Die einzigste Möglichkeit wäre vielleicht, ein bisschen mit overflow:hidden rumzuspielen, welches einen eigenen Block Formating Context erzeugt. Ja, das wäre vielleicht was, wenn man C und F overflow:hidden zuweist und B und E float:left. Den IE müsste man dann aber seperat behandeln.
 
Cobinja schrieb:
Eventuell kann es mit CSS funktionieren, wenn du die Divs, die nebeneinander liegen dürfen, in ein weiteres DIV legst, dem du mit CSS "display:inline" gibst.
Die CSS-Spezifikation sieht einige Attribute für visuelle Formatierungen nur für Boxen vor, die von block-level- und replaced-Inline-Elementen erzeugt werden, mit display: inline versehene block-level-Elemente sind jedoch non-replaced-Inline-Elemente. Zu diesen Attributen gehören u.a. width und height sowie margin und padding, man müßte also mittels eines weiteren DIV-Elements die visuellen Formatierungen jeder Box erzwingen, die mit display: inline versehen wird:
Code:
<div style="display: inline">
  <div stye="width: 300px; height: 100px">B</div>
</div>
<div style="display: inline">
  <div stye="width: 300px; height: 100px">C</div>
</div>

Computer Freak schrieb:
Das wird nicht funktionieren. Ein Inline-Element darf keine Block-Elemente enthalten. Wäre ja auch irgendwie unlogisch, oder? ;)
Diese Regel spielt in diesem Fall keine Rolle, da es sich syntaktisch und semantisch um Block-Level-Elmente handelt, ein DIV-Element bleibt ja trotz CSS-Anweisungen weiterhin ein DIV-Element, obwohl es sich visuell anders verhält ;)

greetings, Keita
 
Würde sagen das es am ehesten mit float klappt.
Wenn man die beiden Container b und c links/rechts floatet und danach ein clear both macht, sollten die sich bei geringer größe untereinander verschieben.

Problem dabei ist nur das wenn die nebeneinander liegen, der Parent Container die Breite der beiden Container hat und wenn die untereinader liegen, nur so breit ist wie einer der Conatiner.(In annahme das C und B gleich Breit sind.)

Hoffe ihr wisst wie ich das meine ;)

Grüße

tewes
 
Einfach floaten lassen, wenn es keinen Platz mehr hat, wird es schon automatisch nach unten gedrückt. ;)
 

Ähnliche Themen

Zurück
Oben