ugrás a tartalomhoz

divek automatikus tördelése

nvyktor · 2010. Aug. 3. (K), 08.55
Sziasztok!

Adva van a következő mintakód:

<div class="container_340">
  <div class="box_340">
    ...
  </div>
  <div class="box_340">
    ...
  </div>
  ....
</div>
<div class="container_340">
  <div class="box_340">
    ...
  </div>
  <div class="box_340">
    ...
  </div>
  ....
</div>


és hozzá a css:

.container_340 {
  ... border, background, stb...
  width:340px;
  float:left;
}

.box_340 {
  ... egyéb formázás
  width:340px;
  float:left;
}


Mint az látszik, egy olyan oldalt szeretnék összehozni, ahol két hasábban pozícionálom a tartalmat. Ezt sikeresen megvalósítottam a kettő container div-vel, floatolva. Ezeken belül lenne a tartalmi rész különálló divekben, ezek adják az egyes blokkok formázását (keret, címsor, stb.).

Na és a feladat az lenne, erre nem tudtam rájönni, hogy a kettő container div között kéne elosztani a box diveket úgy, hogy a két container divnek lehetőleg hasonló legyen a magassága. Csakhogy nem tudom megmondani, hogy hány darab box div készül, mert az php-ból, adatbázisból jön, és azt sem tudom, hogy melyik milyen magas lesz, ugye a tartalom függvényében...

Van valami ötletetek?

Üdv:
Vyktor
 
1

Javascript talán

Kevlar · 2010. Aug. 3. (K), 09.55
Azt lehetne, hogy egyelőre beteszed egy div-be, megnézed így az összes doboz magasságát, majd minden egyes dobozét külön, és így elosztod. Gond lehet, hogy a látogató szeme láttára változik az oldal, de ezt kivédheted úgy, hogy csak az osztás végén jeleníted meg a div-eket, addig nem látszanak.
Szerver oldali megoldást nem tudok elképzelni, ha egyáltalán nem tudod, hogy mi kerül az egyes dobozokba.
2

egy container?

tiku I tikaszvince · 2010. Aug. 3. (K), 10.24
mi lenne ha csak egy containert használnál, azon belül mindegyik boxodra float:left;. Minden páratlan elemre pedig tennél egy clear:left; szabályt (végső esetben szerver oldalon, minden második után betolhatsz egy clear div-et).

Szerver oldalon egy próbát megérhet, hogy a dobozok "méretét" úgy vizsgálnád, hogy a strip_tags által visszaadott karakterek számát veszed alapul. De ezzel én nagyon óvatosan bánnék, mert ha bekerül egy új, nagyobb box, a dobozok sorrendjét teljesen át variálhatja. Nem tudom milyen sűrűn fog frissülni ez az oldal, de a visszatérő látogatók dolgát nagyon megnehezítheted, ha egy új tartalom bekerülése a korábban felfedezni vélt logikát teljesen felborítja.
3

kipróbálom... :)

nvyktor · 2010. Aug. 3. (K), 10.48
@kevlar: köszi, de a js megoldást nem preferálom ilyen esetben, mert ha a usernek nincs, vagy letiltja, akkor borul az egész...

@tiku: ezt kipróbálom... szerver oldalon a páratlan boxokra teszek egy clear értéket. Szólok, hogy hogy sikerült... :)

Amúgy a boxok sorrendje jelen esetben irreleváns, mert nem egymáshoz kötődő tartalom lesz bennük. Vagyis ha a user keres valamit, akkor úgyis át kell nézze a teljes oldalt. De azért még átgondolom, köszi!

V.
5

a sorrend mindig releváns

tiku I tikaszvince · 2010. Aug. 3. (K), 11.03
mindig van valami logika a sorrendben. Valami időrend (rögzítés, publikálás), cím szerző, vagy ezek valamilyen kombinációja. Még ha szerinted nincs is, a felhasználó akkor is fog benne találni logikát. Ellenkező esetben csak a rendetlenség benyomását kelted. Ha valaki pedig valami konkrétumot keres csak a dolgát nehezíted.

Ha több lapra töröd a keresés eredményét, miért nem könnyíted meg a felhasználó dolgát azzal, hogy egy egyértelmű rendezési logika szerint automatikusan átugorhassa az őt nem érdeklő dolgokat?

Egy oldal kialakításakor legyen a legfontosabb a hordozott információ, az információ átadását szolgálja a szövegezés, a szöveg fogyaszthatóságát pedig támogassa a megjelenés. Másként fogalmazva mindig a tartalmat tálaljuk. Az már régen rossz, ha a formát tölti meg valaki tartalommal.
6

ebben igazad van...

nvyktor · 2010. Aug. 3. (K), 11.28
Jogos, amit írtál, mármint ami a logikai részét illeti.

A lényeg egyébként a következő: a weboldal különböző részeiből a tartalmak változásait szedem össze egy oldalra, mint a legfrissebb események. A dobozokra kattintva a user úgyis az őt érdeklő oldalra kerül. Bár abban is lehet valami, hgy a sorrendet meg megszokja...

Igazad van abban is, hogy a tartalom a fontos. De ha van megoldás arra, hogy a tartalom szépen nézzen ki az egyébként adott formában, akkor szerintem arra is ügyelni kell. Mert ha az oldal olyan hatást kelt, mintha "össze lenne csapva", rendezetlen, akkor azt is a user bánja, és pillanatokon belül otthagyja az oldalt...

Nna mindegy, maradunk valószínűleg abban, hogy nincs értelmezhető megoldás a kérdésre...

Köszi azért a válaszokat!
Üdv:
V.
4

nem jó...

nvyktor · 2010. Aug. 3. (K), 10.56
Sajnos ez nem jött össze, ugyanazt kapom eredményül, mint a normál float:left esetében... próbálom szemléltetni:
jelenlegi sorrend:
box1 box2
box3 box4
box5 ...

a kívánt sorrend:
box1 box4
box2 box5
box3 ...

Hajlok arra, hogy hagyom a fenébe... :)
A dolog lényege egyébként az lett volna, hogy minimalizáljam a két oszlop magasságának a különbségét, mert az oldal alján egy lábléc kapott helyet (a szokásos cuccokkal, mint kapcsolat, oldaltérkép, adatvédelem, stb), és rondán néz ki, ha az egyik oszlopban sokkal több adat van, míg a másik helyén üres terület...

Még kipróbálom azt, hogy alapból megváltoztatom a boxok sorrendjét a kiolvasáskor, hátha akkor jó lesz...

Üdv:
V