ugrás a tartalomhoz

Layout probléma

Matyas87 · 2010. Szep. 8. (Sze), 19.58
Sziasztok, már 2 órája szenvedek legyetek szívesek segítsetek.
http://img266.imageshack.us/img266/696/layoutbr.jpg
ezt a layoutot szeretném megvalósítani, előszőr kezdtem úgy hogy minden staticon van,és float lefttel szépen sikerült is.
a felépités igy néz ki:
<div id=container>
<div id=sidebar>
<div id=top>
<div id=logo></div>
<div id=mainmenu></div>
</div>
<div id=submenu></div>
</div>
<div id=picture></div>
<div id=content></div>
<div id=footer></div>
</div>

#container {
width: 900px;}
#sidebar {
width: 225px;
float: left;}
#top {
height: 410px;
width: 225px;}
#logo {
height: 140px;
width: 140px;
float: left;}
#mainmenu {
float: left;
width: 225px;
height: 260px;}
#submenu {
float:left;
width:225px;}
#picture{
height: 360px;
width: 675px;
float: right;}
#content {
width: 655px;
float: right;
#footer {
width: 900px;
height: 45px;
float: left;
}
nos ezzel az volt a probléma,hogy ha a content részbe annyi szöveget tettem ami már letolja a footert, akkor az egész oldal megugrott balra picit, és mikor főoldalról rákattintok egy ilyenre az elég csúnya. Próbálgattam mindenfélét, sidebar tartalmát absolutera csináltam és a submenu magasságát 100%ra rakva ez a jelenség már nincsen viszont nem annyira böngészőkompatibilis, lényeg a lényeg hogy ti hogy csinálnátok ezt a layoutot?előre is kösz
 
1

Görgetősáv

plip · 2010. Szep. 9. (Cs), 01.43
Nem lehet, hogy olyankor előugrik jobbszélen a görgetősáv, és az tolja balra az egészet?
2

de,lehet,mert már minden mást

Matyas87 · 2010. Szep. 9. (Cs), 03.48
de,lehet,mert már minden mást megnéztem csak ez nem jutott eszembe, akkor ezt hogyan lehet kiküszöbölni?mert ugye az oldal úgy van középre igazítva hogy margin-left és margin-right az "auto"-n van, van erre valami megoldás?köszi a választ!
3

próba ki így

asam9 · 2010. Szep. 9. (Cs), 16.07
elvileg ez nem nagyon ugrálhatna semmere a görgő miatt, mert a teljes szélességed, ha jól néztem 900px. a #content-ből hiányzik egy kapcsos zárójel, de biztos ezt csak begépelésnél rontottad el :)
sztem túl sokat float-oltál, inkább csak ott kéne, ahol nagyon muszuáj(#main és #sidebar). ja igen csináltam neked egy #main id-jű divet :)
bemásolom és ha van kérdésed, írj nyugodtan!

<div id="container"> <div id="sidebar"> <div id="top"> <div id="logo"><a href="index.html" title="nyitóoldal"><img src="images/logo.png" alt="" /></a></div> <div id="mainmenu"> <ul id="nav"> <li><a href="#" title="nav 1">nav 1</a></li> <li><a href="#" title="nav 2">nav 2</a></li> <li><a href="#" title="nav 3">nav 3</a></li> </ul> </div> </div> <div id="submenu"> <ul id="subnav"> <li><a href="#" title="subnav 1">subnav 1</a></li> <li><a href="#" title="subnav 2">subnav 2</a></li> <li><a href="#" title="subnav 3">subnav 3</a></li> </ul> </div> </div><!-- sidebar --> <div id="main"> <div id="picture"></div> <div id="content"> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p> </div><!-- content --> </div><!-- main --> <div class="clear"></div> <div id="footer"></div> </div><!-- container -->

a css-ben a * { ... } miatt meg fognak lincselni :D annak helyére egy "CSS reset" kellene, majd guglizz rá, hogy mi ez, egy ilyen css reset pl itt érhető el: http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/

* { margin: 0; padding: 0; list-style: none; border: 0; outline: 0; } body { text-align: center; } #container { position: relative; margin: 20px auto; width: 900px; text-align: left; background: #eee; } #sidebar { width: 225px; display: inline; float: left; background: #ccc; } #top { width: 225px; background: #aaa; } #logo { width: 225px; } #logo a { display: block; margin: 0 auto; height: 140px; width: 140px; background: #333; } #logo a img { display: block; width: 140px; height: 140px; } #mainmenu { padding: 10px 0; width: 225px; background: #777; } #submenu { padding: 10px 0; width:225px; background: #555; } #nav, #subnav { display: block; position: relative; margin: 0 10px; } #main { display: inline; float: right; width: 675px; background: #888; } #picture{ width: 675px; height: 360px; background: #444; } #content { position: relative; margin: 10px auto; width: 655px; background: #eee; } #footer { width: 900px; height: 45px; background: #555; } .clear { clear: both; display: block; float: none; height: 0; line-height: 0; font-size: 0; }
4

köszi szépen sokat

Matyas87 · 2010. Szep. 9. (Cs), 23.29
köszi szépen sokat segítettél!még annyit el tudnál mondani hogy azt hogy oldom meg h a footer mindig az oldal legalján legyen?ez akkor érdekes amikor a tartalom nem tölti ki ugye az egész oldalt és ezért felcsúszik a footer,nem a fixed positionre gondolok h mindig ott van,hanem ha kicsi az oldal akkor legalul,ha van sok tartalom akkor is legörgetek és a legalján.kerestem googlebe de csak ezt a stickyt találtam állandóan...
Másik problémám meg a böngésző kompatibilitás, találtam egy ilyen parancsot amivel különböző böngészökhöz különböző stylesheetet lehet hozzárendelni de nem igazán müködik, és arról se találok normális leirást,harmadik meg hogy font beágyazáshoz tudsz valamit a @font-face..... css fájlba irásán kivül mert azt is csak a legújabb böngészők támogatják kb,köszi:)
5

footer a legalján

asam9 · 2010. Szep. 10. (P), 01.28
ha jól értem, akkor min-height tulajdonságra van szükséged, ami IE6 alatt csak táblázat cellájánál működik, viszont szerintem arra már tegyél magasról :) tehát adsz a #container-nek mondjuk min-height: 800px;-et és akkor már szépen akkoris lent lesz a footer, amikor csak kevés tartalom van.

főelg IE különböző változtaira szoktak külön css-t írni, nem olyan bonyi szerencsére :) /ill tudsz többek között nyomtatáshoz is csinálni külön, annál csak a media="print"-et kell megadnod media="screen, projection" helyett/
------

ie6-ra példa(conditional comment):

<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="css/ie-6.css" charset="utf-8" media="screen, projection" />
<script tpye="text/javascript" src="js/pngfix.js"></script>
<![endif]-->


ebben azt hiszem minden benne van:

<!--[if IE 6]> ha IE6 <![endif]-->
<!--[if !IE 6]> ha nem IE6 <![endif]-->
<!--[if IE lt 6]> ha kisebb, mint IE6 <![endif]-->
<!--[if IE lte 6]> ha kisebb vagy egyenlő, mint IE6 <![endif]-->
<!--[if IE gt 6]> ha nagyobb, mint IE6 <![endif]-->
<!--[if IE gte 6]> ha nagyobb vagy egyenlő, mint IE6 <![endif]-->

megadhatod simán is, hogy IE és az akkor az minden egyes IE verzióra vonatkozik.
------

@font-face pedig:

neked köszönhetően találtam egy iszonyatosan jó megoldást egy generátorral:

http://www.fontsquirrel.com/fontface/generator


kitallózod a font-ot, feltöltöd, majd legenerálja neked szépen... letöltöd a zip-et, aminek a demo.html-ében van egy "stylesheet.css" - itt lesz a @font-face kódja és a zip-ben még ott fognak figyelni a különbüző böngészőkre szánt font-formátumok(eot, svg, ttf, woff). fel kell őket tölteni a tárhelyre és már csak az elérési útakra kell figyelni :) mondjuk én csak chrome-mal néztem, ott szuper, de dícsérték!
6

köszi szépen majd kipróbálom

Matyas87 · 2010. Szep. 10. (P), 13.03
köszi szépen majd kipróbálom ha lesz időm.Az ie-s stylesheetes cuccot én is megtaláltam, csak az a kérdés hogy ha beirom hogy az összes ie mondjuk:
<!--[if IE]><![endif]-->igy ,akkor a nem ieseket is igy kell kommentbe hozzárendelni vagy azt csak simán ahogy szokás?én úgy adtam meg hogy if !IE de az meg nem ment, nagyon kösz hogy ilyen segítőkész vagy!rendes tőled
7

if !IE

asam9 · 2010. Szep. 10. (P), 15.34
nincs mit :)
igazából az if !IE-s lehetőséget még sosem használtam, csak leírtam minden eshetőséget.
úgy szokott lenni, hogy van egy alap css-ed, amit nem is raksz feltételbe egyáltalán, tehát az globálisan vonatkozik minden böngészőre, és akkor az IE-s bugokat úgy javítgatod ki, hogy a fenti módszerrel 6-os vagy a 7-es bugjai miatt, felülírod a neccesen viselkedő elemek tulajdonságait.
nekem most éppen így néz ki a dolog az egyik oldalnál:
<link rel="stylesheet" type="text/css" href="css/reset.css" charset="utf-8" media="all" />
    <link rel="stylesheet" type="text/css" href="css/layout.css" charset="utf-8" media="screen, projection" />
    <link rel="stylesheet" type="text/css" href="css/typography.css" charset="utf-8" media="screen, projection" />
    <link rel="alternate" type="text/css" href="css/print.css" charset="utf-8" media="print" />
    <!--[if IE 6]><link rel="stylesheet" type="text/css" href="css/ie-6.css" charset="utf-8" media="screen, projection" /><script tpye="text/javascript" src="js/pngfix.js"></script><![endif]-->
    <!--[if IE 7]><link rel="stylesheet" type="text/css" href="css/ie-7.css" charset="utf-8" media="screen, projection" /><![endif]-->
8

min height

Matyas87 · 2010. Szep. 11. (Szo), 00.20
most próbálom a te általad készített layoutban a min-height-ot és nem úgy müködik ahogy szeretném,mert ugye változóak a képernyőméretek,ezért ha pl 800ra állítom akkor le kell scrollozni hogy mutassa,én meg azt szeretném hogy minden képernyőméreten alul legyen ha kicsi a tartalom ugye,ha 100%ra állitom a contentbe akkor meg nem csinál semmit
9

js-sel?

asam9 · 2010. Szep. 11. (Szo), 01.12
hát igen, félmegoldás, de annyira jó, hogy ne legyen fent a footer, mert az az igazán csúnya, a görgőzést ki lehet bírni, mondjuk, ha pont úgy áll össze a design, az megint más. viszont ha sok a tartalom, amúgy is lent lesz, szóval sztem ez jár a legkevesebb szívással :)
ha nem jó így, akkor marad vmilyen js megoldás.