Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS] Pozycjonowanie div - obok siebie & jeden pod drugim
Forum PHP.pl > Forum > Przedszkole
modern-web
Witam serdecznie!

Piszę w tym dziale z dwóch powodów: jest często odwiedzany oraz dlatego, że mój problem jest jak mniemam "trywialny".

Chodzi o pozycjonowanie bloków div, nie będę się specjalnie rozpisywał bo tylko namieszam, dlatego zamieszczam obrazek poglądowy:



Chodzi o ułożenie tych 4 divów od lewej do prawej, a gdy się nie zmieści - przenieść do następnej możliwej pozycji patrząc od lewej.
Na przykładzie - chciałbym, aby 3 znalazła się pod 1, a 4 pod 2. Wszystkie bloki mają atrybut float: left.

Z góry dzięki za wszelkie wskazówki smile.gif
Pozdrawiam.

Odświeżam temat, problem nadal nierozwiązany.
Olsz4k
Coś takiego?
http://jsbin.com/AraxurE/1/edit?html,css,output
modern-web
Prawie, problem pojawia się gdy czerwonemu div ustawisz height: 120px;
Zielony zjeżdża w dół, a powinien być bezpośrednio pod czarnym.

podgląd: http://jsfiddle.net/YyLg4/
Olsz4k
Hmm, możesz mu nadać sztucznie ujemny margines.

http://jsfiddle.net/YyLg4/1/
modern-web
Problem w tym, że nie wiem jaki to będzie margines wink.gif a tych divów będzie 10/15/20 (kto wie) i chciałbym żeby to w miarę automatycznie działało.
Myślałem żeby zabrać się za to od innej strony - góra->dół zamiast lewo->prawo.
Czyli po prostu wpakować to w kolumny i zależnie od rozdzielczości ekranu zmniejszać ich ilość. Przyznam szczerze, że zarówno jedno jak i drugie rozwiązanie pozostawiają wiele do życzenia dlatego szukam wszelkich możliwych, byle innych sugestii.

Tak czy inaczej dzięki za zainteresowanie moim problemem, jeżeli masz jakieś propozycje na rozwiązanie tego inaczej - słucham uważnie smile.gif
Olsz4k
A powiedz mi jeszcze czy i czemu musi być to koniecznie na float: left?
modern-web
Nie musi smile.gif
Chodzi o to, by pojawiały się obok siebie, a gdy nie będzie miejsca - w kolejnej linii ale maksymalnie od lewej. Czyli żadnych odstępów od góry/dołu/lewej/prawej, wszędzie taki sam margines.

Podbijam i czekam na kolejne sugestie.

podbijam po raz kolejny

odświeżam

... i jeszcze raz

podbijam i zapraszam do wątku com, może Ty coś wiesz wink.gif
com
generalnie marginesy się zgadzają są takie same, problem jest tego typu że przy float on traktuje że wszytko od lewej do prawej ma rozmiar największego bloku wiec stad ta przerwa.. css-em tego nie załatwisz niestety wink.gif
modern-web
Tyle wiem, właściwie to wszystko gra ale przy odpowiednim ułożeniu divów, gdy jednak ich kolejność się zmieni wszystko może się posypać a tak być nie powinno.
Masz jakieś pomysły jak to rozwiązać? Myślałem nad pobieraniem po kolei wysokości każdego diva znajdującego się w tym kontenerze głównym, a następnie umieszczenie odpowiednio ujemny marginesów ale to też nie ma prawa bytu bo nie wiem ile ich będzie w jednej linii = nie wiem któremu, ile odjąć :/
Może umieszczenie tego w kolumnach ma większy sens? Tylko wtedy CSS będzie musiał zmieniać styl zależnie od rozdzielczości, też masa roboty :/
Ahhh tyle innowacji a takie banalne problemy jak były, tak nadal są.
com
nie wiem co dokładnie potrzebujesz zrobić jest wiele możliwości
http://blog.piotrnalepa.pl/demo/flexbox-model/
http://www.code-sucks.com/css%20layouts/faux-css-layouts/

bodajże to się less nazywa tam pewnie by się to dało zrobić wink.gif

no niestety przy RWD od media-queries nie uciekniesz .. o ile dobrze Cie zrozumiałem to tu masz gotowca http://comstudio.byethost11.com/ możesz się zainspirować biggrin.gif
modern-web
RWD to tutaj najmniejszy problem, w zasadzie nie zamierzam schodzić poniżej 1000px szerokości ale chodzi o ilość tych divów, może być ich 20/30/50/70 a każdy z nich o innej wysokości ale takiej samej szerokości.

Rzuć okiem tutaj: http://jsfiddle.net/sFSZL/

Chciałbym aby zawsze każdy z nich był jak najbliżej lewej i od sąsiadujących (z góry/dołu/lewej/prawej) dzieliło go 20px

Skoro mówisz, że to niewykonalne samym floatem i kilkoma trickami to będę musiał pokombinować z tabelką facepalmxd.gif
com
powiem Ci widziałem to gdzieś ale osobiście nie było mi to potrzebne no i nie mogę sobie teraz przypomnieć jak to tam było rozwiązane, jak będziesz znał te wysokości to można pobawić się calc() ale to dużo kombinowania by było...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.