ugrás a tartalomhoz

CSS: a tartalomhoz dinamikusan igazodó magasságú menü

NetBandita · 2008. Aug. 21. (Cs), 16.22
Sziasztok!

Lehet, hogy nagyon alap kérdés, de a válaszra még nem jöttem rá. Azt szeretném, ha az oszlopok magassága ugyanakkora legyen, mint a legmagasabb oszlopé, és ez dinamikusan változzon, ahogy a tartalom nő vagy csökken. Példaként álljon itt ez az oldal. Itt a bal és a jobboldali oszlop ugyanolyan magas, mint a középső tartalmi rész.

Végső elkeseredésemben már odáig eljutottam, hogy az oldal forrását is lemásoltam, de nem azt kaptam vissza, amit az oldalon láthatunk.
 
1

js, de mukodik

efpe · 2008. Aug. 21. (Cs), 16.58
2

Táblázat

pekka · 2008. Aug. 21. (Cs), 16.58
Szerintem a sok hackelgetés helyett egyszerűbb, ha a jó öreg <table> elemet használod három cellával:)
4

+1

janoszen · 2008. Aug. 21. (Cs), 17.41
Egyetértek. A CSS átláthatóbbá és szemantikusabbá hivatott tenni a kódot, ha szanaszét van hackelve és telepakolva plusz markupokkal, akkor pont ez nem teljesül. Egy <table class="structural"> sokkal olvashatóbb és áttekinthetőbb, mint a divben a divben a divben a div szerkezet.

Majd ha implementálják IE-ben display:table-cell akkor lesz érdemes és kényelmes megválni a strukturális táblázatoktól.
3

Ütöm tovább a vasat

NetBandita · 2008. Aug. 21. (Cs), 17.05
A példán keresztül bemutatott weblap se <table>-t, se javascriptet nem alkalmaz, de megcsinálta. Egyszerűen képtelen vagyok rájönni, hogy miként, hiszen a CSS-ben nincs definiálva height paraméter sem.
5

Háttérszinek

janoszen · 2008. Aug. 21. (Cs), 17.42
Nagyon egyszerű. Háttérképeket definiált a wrappereknek. Ha nem akarsz táblázatot, akkor valszeg ez a legjobb megoldás.

Van még egy, amikor a borderekkel és a positionökkel játszol, de az megint hackelés.
6

Óh!

NetBandita · 2008. Aug. 21. (Cs), 19.17
Köszönöm, proclub! Kipróbálom.

A táblázatokat nem szeretem, én már a webszerkesztés elsajátításától kezdve div-eket és CSS-t használtam. Táblázatot max a MediaWikiben.
8

Táblázat vs...

janoszen · 2008. Aug. 21. (Cs), 22.38
Ez talán egy kicsit hitkérdés és elég keskeny a határvonal. Ha Neked úgy egyszerűbb, akkor csináld táblázat nélkül. Viszont ha háttérképet használsz, az plusz egy lekérdezés az oldalon, plusz néhány milisec mire az oldalt teljes valójában megjelenik. Javaslom ennek tanulmányozására a Firebug "net" nevü tabját - jól kiküldött headerekkel, gzippel és request optimalizálással csodákat lehet tenni egy oldal betöltődésével. Ha megnézed a belikelt oldalt mondjuk egy nagyobb latencyvel bíró hozzáférésen (pl 3G/HSDPA) akkor szabályosan villannak egyet az oszlopok, mielőtt megérkezik a háttérkép.

Ami a HTML-CSS kombót illeti, ha oda jutsz, hogy nagyobb szívás megcsinálni CSS-sel, a HTML markupod is átláthatatlan lesz és még a tetejébe instabil lesz a működés (széthullik bizonyos böngésző alatt vagy bizonyos körülmény hatására) akkor szerintem, nem érte meg a CSS-t eröltetni.

Lehet táblázatokat használni, ha úgy jobb, tisztább, átláthatóbb lesz a kód. Csak CSS-sel kell megformázni és akkor kevés a sallang a HTML-ben.
9

Liquid Faux Columns

yaanno · 2008. Aug. 22. (P), 17.50
Szerintem mindenképpen nézd meg ezt a cikket, ha a layoutot elasztikus módon akarod építeni. A táblákat nyugodtan elfelejtheted, ha layoutot akarsz építeni. Ha nem kell az elasztikusság, akkor keress rá a Faux Columns kifejezésre.

Update: esetleg ez a cikk is jól jöhet.
14

Tényleg faux...

Ustak · 2008. Aug. 22. (P), 20.30
én meg fake-t írtam, majdnem ugyanaz végül is :-).
7

Szerintem ebben nincs hack.

Ustak · 2008. Aug. 21. (Cs), 19.58
A fenti példában csak annyi "hack" van esetleg ami az IE butusságait kivédi (bár nem néztem meg a kódot) Az oszlopok nem ugyanakkorák, csak annak tűnnek, mert ha megnézed, a 3 oszlop bele van foglalva két div-be, wrapper1 és wrapper2, az egyiknek a bal oldali oszloppal megegyező szélességű és színű háttérképe van a balra igazítva, a másiknak pedig a jobb oldali oszloppal megegyező szélességű jobbra igazítva, és így úgy tűnik, mintha az oszlopok egyforma nagyságúak lennének. Ezért ezt fake column-nak is mondják. Ha van firebugod, és inspectel megnézed a css -ét a diveknek, láthatod te is a valós méretet :-) Mivel a külső divek közrefogják a tartalmat, ezért mindig akkorának látszik az oszlop, amekkora a legnagyobb tartalom.
Remélem jót írtam és ilyesmi volt a kérdés :-) Van aki tényleg jobban szereti a table-t, de én sem szeretem. Úgyhogy veled vagyok! :-)
10

Köszönet mindenkinek!

NetBandita · 2008. Aug. 22. (P), 19.09
Köszönet mindenkinek! Időközben sikerült élesben is megalkotnom ezt - igaz, két oszloppal.

Amit proclub írt, az még nekem kínai, de legalább már tudom, hogy merre tapogatózzak tovább.
11

Geek text

janoszen · 2008. Aug. 22. (P), 19.19
Nem tudom, melyik része nem világos, lehetséges, hogy túl sok kockaszöveget tettem bele, fáradt voltam. :) Kérdezz és mondom, mire gondoltam.
12

Ez itt

NetBandita · 2008. Aug. 22. (P), 19.23
Javaslom ennek tanulmányozására a Firebug "net" nevü tabját - jól kiküldött headerekkel, gzippel és request optimalizálással csodákat lehet tenni egy oldal betöltődésével.


Tűzbogárkám van az FF-ben, de nem biztos, hogy erre gondoltál. :) A többi valóban olyasmi, ami az én szakmámban (joghallgató volnék) nem ismert.
13

Firebug

janoszen · 2008. Aug. 22. (P), 20.28
Ez a téma is megérne egy cikket. :) Ha fel van téve a Firefoxhoz a Firebug extension, akkor megnyitva az oldaladat, rákattintasz a "bogárkára", majd bekapcsolod a "net" funkciót. (Alapértelmezetten nem elemez minden oldalt, mert minek.) Ezek után kiválasztod a "net" nevü fület, ahol tételesen mutatja, hogy mi mikor és mennyi idő alatt töltődött be.

Ez azért lényeges, mert ha megnézel egy optimalizálatlan és egy optimalizált változatot egy nagyobb oldalból, nagyságrendei különbségek vannak a sebességben. (Mondjuk 5 sec vs 500 msec mobilinterneten.) Nyilván Te is szeretnéd, hogy a látogatóidnak minél kellemesebb, "gyorsabb" élménye legyen, ezért érdemes erre odafigyelni, valamint a szerver üzemeltetője sem fog haragudni a kevesebb sávszélesség felhasználásért. :)

A betöltés optimalizálása szemszögéből fontos szabályokat egyébként itt találod meg: http://developer.yahoo.com/performance/rules.html (ha tudsz angolul).
15

Szerintem a fejlesztőeszközök megérnének egy dumcsit.

Ustak · 2008. Aug. 22. (P), 20.34
Erről az jutott eszembe, hogy lehet hogy érdekes lenne a fejlesztőeszközökről elbeszélgetni. Én pl ubuntu alatt vim -et meg gimp-et meg firebug-ot használok, és azt mondták rám hogy mazochista vagyok :-)
17

OFF: Valóban

janoszen · 2008. Aug. 23. (Szo), 00.20
Valóban mazohista vagy. Webet fejlesztesz vagy inkább szervert tartasz karban? :D Megértem, ha valaki nem szereti a fancy fejlesztőeszközöket, ha rendszertekerészetről van szó, akkor én sem szeretem a GUI-t (4 xterm rulez) de azért egy olyan projektben amelyikben 50-nél több fájl van VIMet használni... egy kicsit önsanyargatásnak érzem. :) Főleg hogy nehéz benne PHP-t debuggolni. :)
16

"Könyvjelezve"

NetBandita · 2008. Aug. 22. (P), 21.58
Hmm... Ez egy igen hasznos oldalnak tetszik, de pl. hogy egyesítsem a CSS fájlokat, már eleve ki van zárva a sok hack miatt (MediaWikibe ástam bele magam egy szakmai honlapom kapcsán).

Sokat tanultam ma. Hálám és köszönetem! :)
18

Miért is?

janoszen · 2008. Aug. 23. (Szo), 00.22
Miért van kizárva hogy azt az N darab CSS fájlt, amiket egyébként is használsz, összevágd egy fájlba? Effektíve nem változik tőle semmi. Persze, a néhol jelenlevő néhol meg nem jelenlevő fájlokra ez nem megy, de lehet, hogy többet nyersz azzal, ha minden CSS szabály együtt lakik, mint ha külön töltögetnéd.

Ettől függetlenül, a GZip-et rákapcsolhatod vagy szerver oldalon vagy mod_negotiate-el. (Én ez utóbbit választottam, viszont nem volt triviális beállítani.)

Egyébként credit goes to Felhő, ő mutatta meg az emlegetett oldal könyv formáját. :)
19

átláthatatlan

NetBandita · 2008. Aug. 23. (Szo), 10.31
A MediaWiki alapértelmezett (Monobook) sablonjához 6 CSS társul alapesetben (mondanom sem kell, az IE különböző verzióihoz). De nem ez az igazi ok: egyrészt nincs időm (lusta lennék?) ezzel foglalkozni akármennyire is hasznos lenne, de szerencsére a szöveges tartalom viszonylag hamar letöltődik, képekkel meg - már csak a tárhely korlátai miatt is - igyekszem nem operálni. Aztán tőlem idegenek az MW megoldásai (a positionök), törekszem másképp megoldani (float + margin). (Szerintem emiatt is kell hackelni.)

A végső érvem viszont az, hogy telepítettem egy olyan kiegészítőt, amivel az egyes lapokhoz lehet stílusfájlt csatolni. Ezt semmiképpen sem tudom egyesíteni a fő css-ekkel.