Autor | Zpráva | ||
---|---|---|---|
Thorma Profil |
#1 · Zasláno: 9. 4. 2013, 09:48:33
Dobrý den,
chtěl bych Vás požádat o radu/pomoc. Dělám si pro sebe stránky dle grafického návrhu od kamaráda. Vše je OK - i se mi to vcelku dobře ukazuje ve ve všech prohlížečích. Problém nastane, když box (hlavní_text) začnu plnit informacemi. Pak text nepěkně "přetéká patičku. Zkoušel jsem "různě" kombinovat float, overflow, ale bez kladného výsledku. Poradí někdo, jak zařídit aby patička byla dole a text, když bude větší než vymezený prostor jí nepřetékal a byl tedy vidět nebo šlo jím posouvat? Jak je jistě vidět, začínám. Předem děkuji Přikládám moje dílo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250" /> <meta http-equiv="cache-control" content="no cache" /> <meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="Content-language" content="cs" /> <meta name="description" content="" /> <meta name="copyright" content="" /> <meta name="keywords" content="" /> <meta name="author" content="" /> <title></title> <!-- <style type="text/css"> </style> --> <link rel="stylesheet" type="text/css" href="css/style.css" /> </head> <body> <div class="obal"> <div class="hlavicka">hlavička <div class="horni_lista">horní lišta</div> <div class="kontakt_horni">horní kontakt</div> <div class="sipka_horni">šipka</div> <div class="logo">logo</div> <div class="menu">menu</div> <div class="cara">dvojitá čára</div> </div> <div class="body"> <div class="blok_levy"> levý blok <div class="tlacitka">tlačítka</div> <div class="titulek">titulek</div> <div class="sipka_stred">šipka</div> <div class="hlavni_text">hlavní text</div> </div> <div class="blok_pravy">pravý blok <div class="foto">foto</div> <div class="deset_let">deset let</div> </div> <div class="paticka">patička <div class="text_dole">text dole</div> <div class="barevna_lista">barevná lišta</div> <div class="kontakt_dole">kontakt dole</div> </div> </div> </div> </body> </html> CSS /* CSS Document */ html,body { font-style:verdana; font-size: 14px; margin:0px; padding:0px; min-height:100%; background_:orange; } div.obal { min-height:100%; min-width:100%; position:relative; } div.hlavicka { height: 200px; width: 995px; position:absolute; left:134px; top: 0px; background: pink; } div.horni_lista { height: 12px; width: 995px; position:absolute; left:0px; top: 0px; background: #50253c; } div.kontakt_horni { height: 69px; width: 107px; position:absolute; left:888px; top: 0px; background: yellow; } div.sipka_horni { height: 31px; width: 19px; position:absolute; left:850px; top: 25px; background: red; } div.logo{ height: 96px; width: 216px; position:relative; left:25px; top: 29px; background: lightgreen; } div.menu { height: 60px; width: 640px; position:absolute; left:355px; top: 83px; background:red; } div.menu a { margin-left: 15px; margin-right: 10px; text-align:top; } div.menu td { height: 60px; } div.cara { height: 57px; width: 995px; position:absolute; left:0px; top: 143px; border-top: solid 2px #d6d8d5; border-bottom: solid 2px #d6d8d5; background:green; } div.body { padding:0px; padding-bottom:0px; /* Height of the footer */ } div.blok_levy { height:693px; width:452px; position:relative; left:134px; top: 200px; background:orange; } div.tlacitka { height: 203px; width: 410px; position:absolute; left:20px; top:2px; background:maroon; } div.tlacitka img { margin-right: 14px; } div.titulek { height: 60px; width: 340px; position:absolute; left:20px; top:260px; background: gold; } div.sipka_stred { height: 19px; width: 31px; position:absolute; left:390px; top:292px; background: lightblue; } div.hlavni_text { height: 325px; width: 410px; position:absolute; left:20px; top:329px; background:grey; } div.blok_pravy { height:693px; width:542px; position:absolute; left:586px; top: 200px; background:yellow; } div.deset_let { height:283px; width:190px; position:absolute; left:313px; top: 2px; background:blue; } div.foto { height:668px; width:542px; position:absolute; left:0px; top: 25px; background:pink; } div.paticka { position:absolute; left:134px; top: 893px; width:995px; height:63px; background: #983266; } div.barevna_lista { height: 12px; width: 995px; position:absolute; left:0px; top:0px; background: #50253c; } div.kontakt_dole { height: 43px; width: 106px; position:absolute; left:20px; top:-31px; background: blue; } div.text_dole { height: 30px; width: 950px; position:absolute; left:20px; top:21px; background: pink; } img {border:none;} a {color:black;font-weight:bold; text-decoration: none;} a:visited {color:black;font-weight:bold; text-decoration: none;} a:hover {color:black;} |
||
Str4wberry Profil |
#2 · Zasláno: 9. 4. 2013, 09:56:02
Řešení je prosté, použít pro stavbu layoutu obtékání místo posicování.
|
||
Thorma Profil |
#3 · Zasláno: 9. 4. 2013, 11:07:07
Žádný prvek dle Vás by neměl být pozicovaný?
Mám obavy aby to všechny prohlížeče viděli stejně. A syntexe left , top lze při obtékání používat? Nějaké další doporučení? Děkuji za odpověď |
||
Trejpa Profil |
#4 · Zasláno: 9. 4. 2013, 11:19:33
Thorma:
„Žádný prvek dle Vás by neměl být pozicovaný?“ Žádný, u kterého by jiné řešení bylo příliš komplikované. Na tvé stránce takový není. „Mám obavy aby to všechny prohlížeče viděli stejně.“ Ale obavy z toho, že si někdo zvětší písmo a pozicovaný layout se ti rozjede, nemáš. Není problém, aby se to zobrazilo všem stejně. „A syntexe left , top lze při obtékání používat?“ Ne. Tam se nechají prvky volně plynout pod sebou, jak jsou v kódu. Jen těm, co mají být vedle sebe, se nastaví float a pod nimi ukončí pomocí clear. Šířku mají nastavenu jen vnější a plovoucí bloky, ostatní v nich zanořené mají výchozí 100% šířku podle nich. Jejich odražení od hrany rodiče se provádí marginem nebo paddingem. Výška se téměř nikde nenastavuje. „Nějaké další doporučení?“ Pochopit příklad: Jednoduché schéma stránky |
||
Str4wberry Profil |
#5 · Zasláno: 9. 4. 2013, 11:58:55
Problém při absolutním posicování je, že jednotlivé elementy na sebe nepůsobí — neovlivňují se. Na to je potřeba myslet. Jinak se web dá samozřejmě postavit i pomocí absolutního posicování. Třeba Yuhů jinak weby snad ani nedělá. I ta Trejpova ukázka by šla skoro 1:1 udělat i bez obtékání, pokud budeme mít jistotu, že obsahový sloupec bude vždy delší než menu.
|
||
Thorma Profil |
#6 · Zasláno: 9. 4. 2013, 12:48:36
Takže jestli tomu dobře rozumím nepoužívat absolutní/relativní pozicování, ale raději float pro rozmístění bloků na stránce a uvnitř bloků, kde se nachází např. další bloky margin, padding, případně float?
Ukončení "plavání" se provádí pomocí clear:both. |
||
Trejpa Profil |
#7 · Zasláno: 9. 4. 2013, 14:07:31
Thorma:
„Takže jestli tomu dobře rozumím nepoužívat absolutní/relativní pozicování“ Absolutním pozicováním to lze také, ale musí se brát v potaz spousta věcí, které v plovoucím layoutu odpadají (jako vzájemná neinterakce objektů, zvětšování písma). Relativní pozice se k návrhu stránek nehodí vůbec, snad jen bez posunu k ukotvení té absolutní. „raději float pro rozmístění bloků na stránce“ Ano. Rozhodně je to jednodušší. „Ukončení "plavání" se provádí pomocí clear:both.“ Ano, to je správně. Když se ukončuje jen levé plavání, stačí clear: left;. Str4wberry: „Třeba Yuhů jinak weby snad ani nedělá.“ Yuhů to umí a uvědomuje si všechny důsledky použitého řešení. Tento rozhled však většině začátečníků chybí, takže pak pozicují každý malý obrázek a pak se diví, že se jim to rozjíždí, překrývá, nesedí ve větším rozlišení nebo přetékají jim texty. „I ta Trejpova ukázka by šla skoro 1:1 udělat i bez obtékání“ Šla. Použil jsi 6 pozic (3 absolutní + 3 relativní bez posunu k ukotvení). Nahradil jsi tím moje tři floaty a přidal podmínku ke správnému zobrazení, která v mé verzi s floatem nebyla - to je jedna z věcí, na které začátečníci nemyslí. A také jsi pozicoval jen co bylo třeba a ten zbytek jsi nechal normálně plynout, což začátečníci nedělají - všechno z těla vytrhají pozicí a diví se, proč se v prázdné těle s nulovou výškou nezobrazuje obrázek na pozadí. Thorma výše použil 20 pozic. Pozicoval prostě zbytečně všechno. |
||
Thorma Profil |
#8 · Zasláno: 9. 4. 2013, 17:42:57
Pánové děkuji.
Hezký den |
||
Časová prodleva: 13 let
|
0