"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Nadeel is dan dat centreren niet goed werkt. De content en sidenav in een aparte div zou evt. kunnen maar dan is centreren lastiger. Ik denk dat je om dit werkend te krijgen een javascript erbij nodig hebt om de centreer positie te bepalen.
--edit
ik heb nog even iets bedacht wat wél werkt, maar ik vind het persoonlijk niet zo'n mooie oplossing.
Je kunt de sidenav in de content plaatsen en deze dan absolute neerzetten.
1
2
3
4
5
6
7
8
9
10
11
12
13
| #content {
background: yellow;
width: 200px;
margin: 0 auto;
position:relative;
}
#sidenav {
background-color: blue;
width: 50px;
position:absolute;
right: -50px;
} |
[ Voor 38% gewijzigd door marko77 op 25-07-2007 13:46 ]
Weet ik, maar door left te floaten verlies ik de gecentreerde positie. #content shiet dan naar de linkerkant van het scherm...marko77 schreef op woensdag 25 juli 2007 @ 13:40:
Je dient de #content sowieso left te floaten anders komt de sidenav er niet naast. [...]
Maar dan heb je toch hetzelfde probleem? Ook dan zal ik beide divs moeten left floaten om ze naast elkaar te krijgen...wie heeft een creatieve oplossing? Ik wil eerst zeker weten dat het niet anders kan voordat ik naar javascript grijp.De content en sidenav in een aparte div zou evt. kunnen maar dan is centreren lastiger.
[ Voor 34% gewijzigd door Reveller op 25-07-2007 13:45 ]
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Test</title> <style type="text/css"> #main { background-color: red; text-align: center; } #wrapper { text-align: left; margin: 0 auto; width: 250px; } #content { background: yellow; width: 200px; float: left; } #sidenav { background-color: blue; width: 50px; float: right; } #footer { clear:both; background-color: lime; } #main, #content, #sidenav, #footer { height: 30px; } </style> </head> <body> <div id="main"> <div id="wrapper"> <div id="content"></div> <div id="sidenav"></div> </div> <div id="footer"></div> </div> </body> </html> |
Geeft:

Edit:
Come to think of it, je kunt 'm ook in content zetten (content 50px breder maken) en 'm daarbinnen right floaten.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Test</title> <style type="text/css"> #main { background-color: red; text-align: center; } #content { background: yellow; width: 250px; } #sidenav { background-color: blue; width: 50px; float: right; } #footer { clear:both; background-color: lime; } #main, #content, #sidenav, #footer { height: 30px; } </style> </head> <body> <div id="main"> <div id="content"> <div id="sidenav"></div> </div> <div id="footer"></div> </div> </body> </html> |
Voordeel: Geen wrapper div, geen absolute positioning (zoals eerder geopperd).
Nadeel: je content gaat er 'onder door' lopen (L-vorm) als je blauwe blok niet lang genoeg is.
[ Voor 130% gewijzigd door RobIII op 25-07-2007 13:59 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Oh, crap jamarko77 schreef op woensdag 25 juli 2007 @ 13:59:
dan centreer je niet het gele blok, maar geel+blauw. Vandaar mijn opmerking dat centreren dan iets lastiger is.
Omdat absolute positionering je flow vern**kt en altijd problemen geeftmarko77 schreef op woensdag 25 juli 2007 @ 13:59:
- waarom is absolute positioning een nadeel?
[ Voor 34% gewijzigd door RobIII op 25-07-2007 14:01 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij

Met andere woorden, de div die jij om geel en blauw heen gegooid hebt (wrapper) is nu gecentreerd, en niet geel, zoals hier:

Dat is dus mijn probleem
[edit]jeetje, wat een snelle reakties! deze post had eigenlijk 2 of 3 omhoog gemoeten...
[ Voor 10% gewijzigd door Reveller op 25-07-2007 14:07 ]
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
En als je ook nog eens precies je gele kolom in het midden wil moet je even gaan rekenen, want je moet dan een marge gaan instellen. Normaal(alleen geel precies in het midden) zou het midden zich bevinden 200/2=100px, nu is de totale breedte 250px, dus 250/2=125px. Margin-left van 25px op je content dus, en even die 25px toevoegen aan de totale breedte van je wrapper.
1
2
3
4
5
6
7
8
9
10
11
12
| #wrapper { text-align: left; margin: 0 auto; width: 275px; } #content { background: yellow; width: 200px; float: left; margin-left:25px; } |
EDIT:slaat natuurlijk op het eerste voorbeeld van RobIII.
EDIT2: Damm inderdaad wat een snelle reacties, ik repliede namelijk op RobIII.
[ Voor 9% gewijzigd door Kiphaas7 op 25-07-2007 14:09 ]
Een absoluut element wordt toch uit de flow gehaald, dus dan kan deze m ook niet vernaggelenOmdat absolute positionering je flow vern**kt en altijd problemen geeft
Aan de code kant wordt het wel iets onoverzichtelijker, echter in dit geval is dit volgens mij de enige 'redelijke' oplossing zonder van javascript trucjes gebruik te maken.
--edit die margin truc met de wrapper is idd ook wel netjes
[ Voor 8% gewijzigd door marko77 op 25-07-2007 14:14 ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test</title>
<style type="text/css">
body {
margin: 0;
padding: 0;
}
#main {
background-color: red;
text-align: center;
}
#header {
background-color: lime;
}
#mainnav {
background-color: pink;
margin: 0 auto;
width: 200px;
}
#wrapper {
text-align: left;
margin: 0 auto;
width: 275px;
}
#content {
background: yellow;
width: 200px;
float: left;
margin-left:25px;
}
#subnav {
background-color: navy;
}
#text {
background-color: orange;
}
#sidenav {
background-color: blue;
width: 50px;
float: right;
}
#footer {
clear:both;
background-color: lime;
}
#main, #header, #mainnav, #content, #subnav, #sidenav, #footer {
min-height: 30px;
}
</style>
</head>
<body>
<div id="main">
<div id="header">
<div id="mainnav"></div>
</div>
<div id="wrapper">
<div id="content">
<div id="subnav"></div>
<div id="text"><br><br><br></div>
</div>
<div id="sidenav"><br><br><br></div>
</div>
<div id="footer"></div>
</div>
</body>
</html> |
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Betere (en nu wel kloppende
1
2
3
4
5
6
7
8
9
10
11
12
| #wrapper { text-align: left; margin: 0 auto; width: 300px; } #content { background: yellow; width: 200px; float: left; margin-left:50px; } |

IE (zowel 4.0, 6.0 als 7.0) maken een fout:

Screenshots trouwens gemaakt via browsercam.com. Een aanrader
Het verschil is duidelijk: de blauwe div rechts (#sidenav) heeft een padding-left van 10px, maar IE maakt er een margin-left van 10px van. Hoe kan dit en wat is de oplossing? Is dit zo'n zelfde geval als waar ik over gelezen heb in het forum waarbij IE een dubbele margin neemt tov andere browsers?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test</title>
<style type="text/css">
body {
margin: 0;
padding: 0;
}
#main {
background-color: red;
text-align: center;
}
#wrapper {
text-align: left;
margin: 0 auto;
width: 300px;
}
#content {
background: yellow;
width: 200px;
float: left;
margin-left:50px;
}
#logo {
background-color: lime;
}
#mainnav {
background-color: pink;
}
#subnav {
background-color: navy;
}
#text {
background-color: orange;
}
#sidenav {
background-color: blue;
width: 40px;
float: right;
padding: 60px 0 0 10px;
}
#footery {
clear:both;
background-color: #fff;
}
#footer {
background-color: pink;
margin: 0 auto;
width: 200px;
}
#logo, #mainnav, #subnav, #footer {
min-height: 30px;
}
</style>
</head>
<body>
<div id="main">
<div id="wrapper">
<div id="content">
<div id="logo"><br><br></div>
<div id="mainnav"><br><br></div>
<div id="subnav"><br><br></div>
<div id="text"><br><br><br></div>
</div>
<div id="sidenav">text</div>
</div>
<div id="footery">
<div id="footer"><br><br></div>
</div>
</div>
</body>
</html> |
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| <html> <head> <title></title> <style type="text/css"> body { margin: 0; padding: 0; text-align: center; } #content { position: relative; margin: 0 auto; width: 200px; height: 100%; background: red; text-align: left; } #menu { position: absolute; top: 0; margin-left: 200px; width: 100px; background: green; border-left: 1px solid lime; } </style> </head> <body> <div id="content"> <div id="menu"> menu<br>menu<br>menu<br>menu<br>menu<br> En dan nu een heel erg lange regel die afgebroken moet worden binnen 't groene vlak. </div> content<br>content<br>content<br>content<br>content<br> En dan nu een heel erg lange regel die afgebroken moet worden binnen 't rode vlak. </div> </body> </html> |
Iedereen wil terug naar de natuur, maar niemand wil lopend...
Dank je, maar die oplossing staat te ver af van mijn eigen markup. Ik wil eigenlijk alleen weten waarom IE de #sidenav van 50 naar 40 pixels breed maakt en een margin-left van 10px laat zien ipv een padding van 10px, en hoe dat op te lossen isMichielioZ schreef op donderdag 26 juli 2007 @ 02:48:
Misschien semantisch niet 100% mooi, maar de volgende "oplossing" werkt bij mij in IE7, Firefox (2.x) en Opera 9.10...
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
http://hsivonen.iki.fi/doctype/ (vooral de tabel goed doornemen)
Verander je de doctype (bijvoorbeeld) naar
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
rendert IE7 wel goed. IE6 zal wel nog bugs hebben (omdat het ie6 is), maar daar moet je zelf maar eens naar gaan zoeken.

Met andere woorden; nu wordt #sidenav ineens onder #content gezet. Als ik de width van #sidenav aanpas, bijvoorbeeld van 50px naar 20px, doet IE hetzelfde. Alle andere browsers laten het wel goed zien:

Weet iemand waar dit nu weer aan ligt? Ik heb #sidenav left en right laten floaten, maar dit maakt niets uit. Ook heb ik een strict en loose doctype geprobeerd maar dat levert ook geen resultaat op. Ik word er wel gefrustreerd van; binnen no-time ben je klaar met een opzet voor je website en vervolgens loop je twee dagen te Googlen en fora te spammen om het goed te krijgen voor IE 5.0 en 6.0 (terwijl 4.0 het wel goed rendert!)
Alle tips zijn welkom
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test</title>
<style type="text/css">
body {
margin: 0;
padding: 0;
}
#main {
background-color: red;
text-align: center;
}
#wrapper {
text-align: left;
margin: 0 auto;
width: 300px;
}
#content {
background: yellow;
width: 200px;
float: left;
margin-left:50px;
}
#logo {
background-color: lime;
}
#mainnav {
background-color: pink;
}
#subnav {
background-color: navy;
}
#text {
background-color: orange;
}
#sidenav {
background-color: blue;
width: 50px;
float: right;
padding-top: 50px;
}
#footery {
clear:both;
background-color: #fff;
}
#footer {
background-color: pink;
margin: 0 auto;
width: 200px;
}
#logo, #mainnav, #subnav, #footer {
min-height: 30px;
}
</style>
</head>
<body>
<div id="main">
<div id="wrapper">
<div id="content">
<div id="logo"><br><br></div>
<div id="mainnav"><br><br></div>
<div id="subnav"><br><br></div>
<div id="text"><br><br><br></div>
</div>
<div id="sidenav">text</div>
</div>
<div id="footery">
<div id="footer"><br><br></div>
</div>
</div>
</body>
</html> |
[ Voor 91% gewijzigd door Reveller op 26-07-2007 14:32 ]
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Overigens heb ik het vermoeden dat IE je element te breed vindt, IE telt iets teveel bij de breedte waardoor het element niet meer in je container past en dus een regel naar beneden wordt geschoven waar wel plaats is. Dit kun je oplossen door de padding op 0 te zetten (zoals je al gedaan hebt), en dan een element binnen je blauwe box een margin mee te geven. Effectief is dat natuurlijk hetzelfde, maar IE zal dan zich wel gedragen (denk ik).
[ Voor 11% gewijzigd door Kiphaas7 op 26-07-2007 17:42 ]
IE5.0 gebruik idd (bijna) niemand meer, maar ik vond het grappig om te zien dat IE4.0 het wel goed rendert, maar IE5.0 nietKiphaas7 schreef op donderdag 26 juli 2007 @ 17:42:
Persoonlijk vind ik dat je IE4 en IE5.0 eruit mag knikkeren qua support. Wie gebruikt dat nog? IE5.5 kan ik me nog voorstellen, maar ook dan mag je jezelf eens gaan afvragen of die mensen tot je doelgroep behoren.
Dat het element te breed zou kunnen zijn had ik ook al bedacht:Overigens heb ik het vermoeden dat IE je element te breed vindt, IE telt iets teveel bij de breedte waardoor het element niet meer in je container past en dus een regel naar beneden wordt geschoven waar wel plaats is. Dit kun je oplossen door de padding op 0 te zetten (zoals je al gedaan hebt), en dan een element binnen je blauwe box een margin mee te geven. Effectief is dat natuurlijk hetzelfde, maar IE zal dan zich wel gedragen (denk ik).
Het moet dus ergens anders aan liggen. Heeft iemand een idee?!Reveller schreef op donderdag 26 juli 2007 @ 14:14:
[...] Als ik de width van #sidenav aanpas, bijvoorbeeld van 50px naar 20px, doet IE hetzelfde [dus: blauwe box onderaan plaatsen]. Alle andere browsers laten het wel goed zien. [...]
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
| Msie 7.0 | 31.8 % |
| Msie 6.0 | 55.8 % |
| Msie 5.23 | 0 % * |
* schommelt een beetje tussen 0 en 0.1 % ;^)
Met 0.3% zit zelfs netscape boven IE 5.x :-). Je kan met cond. comments ook gewoon de site links aligneren voor prehistorisch browsermateriaal.
Ja, maar ik maak me ook niet druk om het verkeerd renderen van IE5.0, wel van IE6.0. En dat zou, gebaseerd op jouw statistieken, betekenen dat de helft van de bezoekers van mijn site een vernaggelde pagina voorgeschoteld krijgt...moozzuzz schreef op donderdag 26 juli 2007 @ 18:30:
Gewoon een verdelinkje van een site:
Msie 7.0 31.8 % Msie 6.0 55.8 % Msie 5.23 0 % *
* schommelt een beetje tussen 0 en 0.1 % ;^)
Met 0.3% zit zelfs netscape boven IE 5.x :-). Je kan met cond. comments ook gewoon de site links aligneren voor prehistorisch browsermateriaal.
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Verder kun je beter geen hacks gebruiken, maar het probleem helemaal vermijden of evt. conditional comments gebruiken, zoals moozzuzz zegt.
En ik wilde bijna schrijven dat het aan je doelgroep ligt of je IE5 nog moet ondersteunen, maar na wat rondneuzen (op eigen sites en ook op The Counter en Browsernews) zie ik dat de groep inmiddels tot (onder de) 1% is gekrompen.. Ik trek daar iig mijn eigen conclusies uit
Cogito ergo dubito
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>relative absolute</title>
<style type="text/css">
/* haal div#main uit de flow met position relative
Dit wordt nu het startpunt voor het absoluut
gepositioneerde #sidenav
*/
#main {
position:relative;
background-color: red;
}
#content {
margin: 0 auto;
width:200px;
background: yellow;
}
/* Breng #sidenav op 50% t.o.v. #main
en verschuif deze vervolgens 50px, zodat
deze naast #content komt te staan.
*/
#sidenav {
position:absolute;
width: 50px;
top:0;
left:50%;
margin-left:100px;
background: blue;
}
#footer {
background: lime;
}
#main,
#content,
#sidenav,
#footer {
height: 30px;
}
</style>
<div id="main">
<div id="content"></div>
<div id="sidenav"></div>
</div>
<div id="footer"></div> |
[ Voor 3% gewijzigd door kaydie op 27-07-2007 01:53 ]
Wow! Nu doet hij het wel. Dank je welBoelie-Boelie schreef op donderdag 26 juli 2007 @ 22:59:
Als ik de #sidenav in de HTML boven #content zet en zowel #sidenav als #content naar rechts float, werkt het wel.
Ik ga eens even goed de verschillen bekijken tussen de twee methoden. Zo op het eerste oog vind ik de jouwe ingewikkelder, maar dat maakt niet uit. Ik hoop dat ik er wat mee kan. Creative oplossing hoor, zo. Dat is me wel duidelijk geworden over css: duizend mogelijkheden om ergens te komen.kaydie schreef op vrijdag 27 juli 2007 @ 01:52:
Om het eens over een andere boeg te gooien:
[...code...]
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Verwijderd
Zorg ervoor dat IE6 zich gedraagt als IE7. Dat scheelt je al de helft van het werk.Reveller schreef op vrijdag 27 juli 2007 @ 12:14:
Wow! Nu doet hij het wel. Dank je welIk moet wel zeggen dat ik het een gepruts vind, dit soort dingen. IE6.0 wordt nog door de helft van de mensen gebruikt, dus je moet wel. Maar je moet wel heel erg creatief zijn om dit soort dingen te bedenken...

Ik heb al verschillende dingen geprobeerd om dit op te lossen, waaronder de volgende wijzigingen in de code onderaan deze post:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| [...]
#main2 {
background-color: yellow;
text-align: center;
}
#wrapper2 {
margin: 0 auto;
background-color: pink;
}
#footer2 {
background: yellow;
width: 610px;
float: left;
margin-left: 120px;
}
<div id="main">
<div id="wrapper">
<div id="sidenav">text</div>
<div id="content">
<div id="logo"><br><br></div>
<div id="mainnav"><br><br></div>
<div id="subnav"><br><br></div>
<div id="text"><br><br><br></div>
</div>
</div>
</div>
<div id="main2">
<div id="wrapper2">
<div id="footer2"></div>
</div>
</div> |
Maar dan krijg je weer het probleem dat als je het venster breed maakt, alles keurig mee naar het midden schuift, behalve de gele footer. Die blijft nu stug op 120px van de linker kant af staan ipv mee te schuiven naar rechts:

Wie kan mij hiermee helpen? Ik ben uitgegaan van onderstaande html / css:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test</title>
<style type="text/css">
body {
margin: 0;
padding: 0;
background-color: #fff;
}
#main {
background-color: red;
text-align: center;
}
#wrapper {
text-align: left;
margin: 0 auto;
width: 850px;
}
#content {
background: yellow;
width: 610px; /* 620 */
float: right;
margin-left: 120px; /* 140 */
}
#logo {
background-color: lime;
}
#mainnav {
background-color: pink;
}
#subnav {
background-color: navy;
}
#text {
background-color: orange;
}
#sidenav {
background-color: blue;
width: 120px; /* 140 */
float: right;
padding-top: 50px;
}
#footery {
clear:both;
background-color: #fff;
}
#footer {
background-color: pink;
margin: 0 auto;
width: 610px;
}
#logo, #mainnav, #subnav, #footer {
min-height: 30px;
}
</style>
</head>
<body>
<div id="main">
<div id="wrapper">
<div id="sidenav"><br><br></div>
<div id="content">
<div id="logo"><br><br></div>
<div id="mainnav"><br><br></div>
<div id="subnav"><br><br></div>
<div id="text"><br><br><br></div>
</div>
</div>
<div id="footery">
<div id="footer"><br><br></div>
</div>
</div>
</body>
</html> |
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Valt wel mee toch?Reveller schreef op vrijdag 27 juli 2007 @ 12:14:
[...]
Zo op het eerste oog vind ik de jouwe ingewikkelder,
[...]
Ik heb hem naar de huidige situatie aangepast...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>relative absolute</title>
<style type="text/css">
html, body{
margin:0;
padding:0;
}
#main {
position:relative;
}
#main, footery{
min-width:610px;
overflow:hidden;
}
#content, #footer{
margin: 0 auto;
width:610px;
}
#sidenav {
position:absolute;
width:120px;
top:0;
left:50%;
margin-left:305px;
}
#main { background-color: red; }
#content { background-color: yellow; }
#logo { background-color: lime; }
#mainnav { background-color: pink; }
#subnav { background-color: navy; }
#text { background-color: orange; }
#sidenav { background-color: blue; }
#footery { background-color: #eee; }
#footer { background-color: pink; }
#logo, #mainnav, #subnav, #footer {
min-height: 30px;
}
</style>
<div id="main">
<div id="sidenav"><br><br></div>
<div id="content">
<div id="logo"><br><br></div>
<div id="mainnav"><br><br></div>
<div id="subnav"><br><br></div>
<div id="text"><br><br><br></div>
</div>
</div>
<div id="footery">
<div id="footer"><br><br></div>
</div> |
- IE6.0 laat #sidenav niet zien
- in IE7.0 en FF krijg je geen horizontale scrollbalk als je het browservenster kleiner maakt en #sidenav uit het beeld verdwijnt. Pas als #content uit het beeld verdwijnt, krijg je een scrollbalk
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Reveller schreef op vrijdag 27 juli 2007 @ 21:18:
IE6.0 laat #sidenav niet zien
1
2
3
4
| #main {
_height:1%; /* haslayout voor IE6... */
position:relative;
} |
in IE7.0 en FF krijg je geen horizontale scrollbalk als je het browservenster kleiner maakt en #sidenav uit het beeld verdwijnt. Pas als #content uit het beeld verdwijnt, krijg je een scrollbalk[/list]Heb je enig idee hoe dit komt? Ik heb gezien dat het geen verschil maakt als je de #sidebar div onder #content zet ipv er boven.
1
2
3
4
| #main, footery{
min-width:850px; /* IE6 lust dit niet... */
overflow:hidden;
} |
Verwijderd
Dean Edwards heeft een javascript library geschreven waardoor IE6 zich gedraagt als IE7...Verwijderd schreef op vrijdag 27 juli 2007 @ 12:30:
[...]
Zorg ervoor dat IE6 zich gedraagt als IE7. Dat scheelt je al de helft van het werk.
Als je dit script gebruikt, zal min-width plots wel beschikbaar worden in IE6
- Over IE-hacks en conditional comments
- Over min-width in IE (overigens werkt min-height ook niet in IE, maar height werkt in IE nagenoeg hetzelfde als min-height in normale browsers)
Cogito ergo dubito
Ik probeer nu het gedrag van de footer goed te krijgen:
- de footer moet altijd onderaan het browservenster staan
- als de inhoud van de pagina dus korter is dan het browservenster, is de afstand tussen de pagina en de footer dus groter
- als de inhoud van de pagina langer is dan het venster, schijft de footer naar beneden

Strict genomen vertoont FF volgens mij nu fout gedrag en houdt IE zich wel aan de CSS standaard. Door #footery een bottom: 0 mee te geven dacht is dat deze altijd de footer onderaan zou zetten. Wie kan mij vertellen wat ik voud doe?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
| <style type="text/css">
html {
height: 100%;
}
body {
margin:0 auto;
padding:0;
min-height: 100%;
background: #fff;
}
#main {
_height:1%;
position:relative;
}
#footery {
position: absolute;
bottom: 0;
}
#content, #footer {
margin: 0 auto;
width: 610px;
}
#sidenav {
position: absolute;
width: 120px;
top: 0;
left: 50%;
margin-left: 305px;
}
#logo, #mainnav, #subnav, #footer {
min-height: 30px;
}
#main {background-color: red;}
#content {background-color: yellow;}
#logo {background-color: lime;}
#mainnav {background-color: pink;}
#subnav {background-color: navy;}
#text {background-color: orange;}
#sidenav {background-color: blue;}
#footery {background-color: #fff;}
#footer {background-color: pink;}
</style>
<!--[if lt IE 7]>
<style type="text/css"> body { height: 100%; } </style>
<![endif]-->
<div id="main">
<div id="sidenav"><br><br><br><br><br><br><br></div>
<div id="content">
<div id="logo"><br><br></div>
<div id="mainnav"><br><br></div>
<div id="subnav"><br><br></div>
<div id="text"><br><br><br><br><br><br><br><br></div>
</div>
</div>
<div id="footery">
<div id="footer"><br><br></div>
</div> |
[ Voor 6% gewijzigd door Reveller op 28-07-2007 18:58 ]
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
