Autor Zpráva
michal55
Profil
Ahoj, prosím pěkně o radu. Nevím v čem je chyba, proto na mě prosím nekřičte, že to nehledám jinde. Bude to asi jen nějaká banalita, koukám do kódu už hrozně dlouho, ale nemůžu najít chybu. Bude to spíš nepochopení souvztažností.

Jsme začátečník s CSS a zkouším si vytvořit fotogalerii zde:

http://sklep-cejc.cz/galery/vinice/new_gal.html
http://sklep-cejc.cz/all2b.css

Stránka má (kromě hlavičky a patičky) jen jeden sloupec definovany jako class=column. V něm je fotogalerie, kde se každý obrázek pomocí float řadí zleva vedle druhého (každý obrázek s popiskem má class "gal_jednotka"). No a právě když zadám hodnotu float na každý obrázek s popiskem, hezky se mi seřadí podle rámu galerie, ale nějak se mi vymezí ze sloupce column, které má bílé pozadí a výsledek vypadá tak, jak vidíte v odkazu. Jako by galerie již nespadala pod sloupec. Když odstraním vlastnost seřazení obrázků vedle sebe, tak galerie opět hezky náleží pod sloupec "column". Netušíte proč?

Michal


P.S. styly pro galerii je úplně dole v dokumentu

Moderátor Davex: Titulek „float:left“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
slovakCZ
Profil
muzes to vyresit treba tak, ze tomu divu s tridou column das taky float:left.. jinak je potreba pouzit reset (clear:both).. jak to funguje si dohledej a precti, bohuzel nemam ted moc casu popisovat
Plaváček
Profil
michal55:

Nejrychlejším řešením v tvé situaci je pro DIV s třídou gal_frame nastavit overflow:hidden. Delší cestou je nastudovat si, jak float a clear vlastně funguje, třeba zde http://www.pixy.cz/pixylophone/2003_12_archiv.html#1071056082.
Trejpa
Profil
michal55:
Do .gal_frame musíš dát něco, co ukončí plavání.

<div class="gal_frame">

 …plovoucí prvky…

 <br style=clear:left>

 </div>
slovakCZ
Profil
Trejpa:
To v tomto pripade neni nutne.. staci bohate jeden element za vsechny gal_frame a do elemtu s tridou column ktery to :vyresetuje:.. takze nejak takto:

<div class="column">
<div class="gal_frame">nejaky obrazek.... bla bla</div>
<div class="gal_frame">nejaky obrazek.... bla bla</div>
<div class="gal_frame">nejaky obrazek.... bla bla</div>
<div class="gal_frame">nejaky obrazek.... bla bla</div>
<div class="gal_frame">nejaky obrazek.... bla bla</div>
<div style="clear:both;">&nbsp;</div>
</div>

a tim padem neni nutne pak floatovat div s tridou column....
dunil
Profil *
Děkuji všem, už to funguje.

Děkuji za odkaz na Pixiho, nejsem z toho stoprocentně moudrý, ale chápu to tak, že galerie, pokud ji dám vlastnost float, se vyjme z dokumentu jakoby neexistovala, tudíž nastavené pozadí nepokrývá galerii, kterou jakoby nevidí.

Fungují všechny 3 návody. Overflow, Clear i dát nadřazenému prvku float: left.

Ještě jednou děkuji.
Trejpa
Profil
slovakCZ:
Ty sis tu stránku moc neprohlédl, že? Blok .gal_frame je tam jeden a neplave. Plavou v něm obsažené bloky .gal_jednotka. Tedy jak jsem napsal, řešením je ukončení plavání clearem uvnitř .gal_frame, nebo (jak píše Plaváček) změnou jeho overflow.
dunil
Profil *
No četl jsem to několikrát :), ale asi mě to v hlavě nezaplo úplně správně :). Chce to víc praxe. Děkuju eště raz.
slovakCZ
Profil
Trejpa:
ale to prece vubec nevadi ze neplave. :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0