Toon posts:

css top bottom in IE werkt niet

Pagina: 1
Acties:
  • 238 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ola!

Ik heb een IE probleem, tenminste daar lijkt het op. Ik wil een HTML pagina verdelen in drie vlakken: header, main en footer. De header start 10 px onder de top en heeft een hoogte van 40. De footer start 10 px boven bottom en heeft ook een hoogte van 40. Het stuk ertussen, de main area, zou dat op moeten vullen. In Mozilla werkt het wel, in IE 6 niet. Hieronder mijn HTML pagina. Weet iemand een work-around zonder vaste coordinaten voor main te gebruiken?

Thankz,
Marcel

<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


<html>
<head>
<style type="text/css">
div#header{
display: block;
position: absolute;
top: 10px;
width: 900px; /* fixed width of 900 pixels, window centered */
left: 50%;
margin-left: -450px;
height: 40px;
border: 1px #ccc dashed;
}

div#main{
display: block;
position: absolute;
width: 900px; /* fixed width of 900 pixels, window centered */
left: 50%;
margin: 0; padding: 0;
margin-left: -450px;
top: 60px;
bottom: 60px;
border: 1px #ccc dashed;
}

div#footer{
position: absolute;
width: 900px; /* fixed width of 900 pixels, window centered */
left: 50%;
margin-left: -450px;
left: 50%;
bottom: 10px;
height: 40px;
border: 1px #ccc dashed;
}
</style>
</head>

<div id="header">
De header start vanaf 10 onder de top en loopt door tot en met 50 onder de top, da's goed.
</div>


<div id="main">
Hiero zit het probleem. Deze div start 60 onder top en behoort door te lopen tot 60 boven bottom. In Mozilla werkt dat prima,
onder IE 6 Windows niet. Ik wil geen vaste coordinaten gebruiken voor deze area. Weet iemand een work-around?
</div>

<div id="footer">
De footer start vanaf 10 boven bottom en loopt door tot en met 50 boven bottom, da's de bedoeling ook
</div>
</html>

  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 16-06-2025

OzBoz

.:.H.:.I.:.P.:.

code:
1
Tip van de dag, plaats de meuk even tussen [code ] [/] tags.

My Fizion | My 3D prints | LinkedIn


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Dit heeft meer te maken met IE dan met Mozilla/Firefox.

Je moet opzoek gaan naar workarounds, zoals:
Faux Columns
CSS Layout Techniques

Verwijderd

hallo,

waarom gebruik je div's? Gebruik gewoon table's en je probleem is zo opgelost:
code:
1
2
3
4
5
6
7
<center>
<table width=900 height='100%'>
<tr><td height=50  valign=top style="border:1px dashed black;">bovenkant</td></tr>
<tr><td valign=top style="border:1px dashed black;">midden</td></tr>
<tr><td height=50 valign=top style="border:1px dashed black;">onderkant</td></tr>
</table>
</center>


ik zou ook je styles niet bovenaan je pagina zetten, maar is een css bestand en dan includen:
code:
1
<link rel="StyleSheet" href="style.css" type="text/css">


zodat je style maar een keer moeten aangepast worden als er iets moet veranderen

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op 01 november 2004 @ 11:50:
hallo,

waarom gebruik je div's? Gebruik gewoon table's en je probleem is zo opgelost:


ik zou ook je styles niet bovenaan je pagina zetten, maar is een css bestand en dan includen:
code:
1
<link rel="StyleSheet" href="style.css" type="text/css">


zodat je style maar een keer moeten aangepast worden als er iets moet veranderen
Hallo,

Waarom zou je tables gebruiken :? Hij hoeft toch geen tabulaire data te presenteren?

En ik ga ervanuit dat TS de relevante CSS inline zet, zodat men (wij) meteen kunnen testen ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

>> Hij hoeft toch geen tabulaire data te presenteren?

Bovenkant van de pagina, middenste gedeelte, onderkant
lijkt me toch geschikt voor een table hoor...

En div's gebruiken zorgt altijd voor problemen, ik weet het uit ervaring...
Als je het kan oplossen met een table, doe het dan zo...
En zo werkt het in iedere browser...

Edit:
en nog iets: al eens je venster kleiner gemaakt in mozilla? De tekst komt met die div's gewoon over elkaar te staan... dit kan je gewoon niet hebben met een table...

[ Voor 23% gewijzigd door Verwijderd op 01-11-2004 12:01 ]


  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

Verwijderd schreef op 01 november 2004 @ 11:58:
>> Hij hoeft toch geen tabulaire data te presenteren?

Bovenkant van de pagina, middenste gedeelte, onderkant
lijkt me toch geschikt voor een table hoor...

En div's gebruiken zorgt altijd voor problemen, ik weet het uit ervaring...
Als je het kan oplossen met een table, doe het dan zo...
En zo werkt het in iedere browser...
Als je semantisch correct wilt werken dan doe je het dus *niet* met tables, want je presenteert hier geen statistieken ofzo. Dát is tabulaire data. Wat jij voorstaat is het misbruiken van een table voor layoutdoeleinden, in plaats van de data zelf met de juiste elementen te presenteren.

Als je standards compliant wilt werken dan probeer je dus elementen te zoeken die zo goed mogelijk passen bij de inhoud ervan.
Maargoed, dit is eigenlijk een offtopic discussie die TS niet helpt om zijn probleem op te lossen. Tables zijn in ieder geval geen oplossing. Ik zou het niet eens een workaround willen noemen, want het is gewoon onnodig om het zo te doen.

edit:
Zit hier misschien iets bij om het probleem op te lossen: [rml][ CSS+IE] Div uitrekken over de pagina[/rml]

[ Voor 7% gewijzigd door Superdeboer op 01-11-2004 12:08 ]

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


Verwijderd

Superdeboer schreef op 01 november 2004 @ 12:03:
[...]

Als je semantisch correct wilt werken dan doe je het dus *niet* met tables, want je presenteert hier geen statistieken ofzo. Dát is tabulaire data. Wat jij voorstaat is het misbruiken van een table voor layoutdoeleinden, in plaats van de data zelf met de juiste elementen te presenteren.
Een table misbruiken voor layoutdoeleinden? Misbruiken? Een table dient juist om dingen te layouten... zoals een table bij statistieken ook enkel wordt gebruikt om de statistieken zelf te layouten, mooi onder/naast elkaar, gealigneerd te krijgen...
Als je standards compliant wilt werken dan probeer je dus elementen te zoeken die zo goed mogelijk passen bij de inhoud ervan.
Maargoed, dit is eigenlijk een offtopic discussie die TS niet helpt om zijn probleem op te lossen. Tables zijn in ieder geval geen oplossing. Ik zou het niet eens een workaround willen noemen, want het is gewoon onnodig om het zo te doen.
En een div is hier wel het juiste element die bij de inhoud past? Ik zie niet in waarom...

Verwijderd

Verwijderd schreef op 01 november 2004 @ 12:12:
Een table misbruiken voor layoutdoeleinden? Misbruiken? Een table dient juist om dingen te layouten... zoals een table bij statistieken ook enkel wordt gebruikt om de statistieken zelf te layouten, mooi onder/naast elkaar, gealigneerd te krijgen...
Welkom in 2004 Afbeeldingslocatie: http://www.nwillem.nl/images/smilies/bye.gif

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 01 november 2004 @ 12:12:
[...]
Een table misbruiken voor layoutdoeleinden? Misbruiken? Een table dient juist om dingen te layouten... zoals een table bij statistieken ook enkel wordt gebruikt om de statistieken zelf te layouten, mooi onder/naast elkaar, gealigneerd te krijgen...
Ik hoop dat jij geen webdesigner bent; je bent in ieder geval ergens in de vorige eeuw blijven steken...
[...]
En een div is hier wel het juiste element die bij de inhoud past? Ik zie niet in waarom...
Een division is bedoelt om logische afscheidingen te maken tussen verschillende blokken; ze worden in dit geval dus correct toegepast.

Intentionally left blank


Verwijderd

@ crisp
jep, ik ben webdisigner, en inderdaad sinds de vorige eeuw ;)
Gebruik ook regelmatig div's (kunnen soms super handig zijn), maar om een pagina te verdelen in header, body en footer gebruik ik altijd tables...
Btw: je jag guestbook is ook opgebouwd uit tables hoor... of werd dit ook gemaakt in de vorige eeuw? >:)
Ik bedoel gewoon, waarom zou je hier geen tables mogen gebruiken? Ze werken in alle browsers (als webdisigner moet je ook rekening houden met oude browsers), en als div's problemen geven, waarom zou je dit niet mogen oplossen met een good old table?
Als je me kan overtuigen, doe maar... In het andere geval ben ik dan maar een ou-bollige webdisigner...

Verwijderd

Topicstarter
edit:
Zit hier misschien iets bij om het probleem op te lossen: [rml][ CSS+IE] Div uitrekken over de pagina[/rml]
Hmm, ja en nee. Het uitrekken van een div is niet het probleem. Maar het opvullen tussen twee andere divs gaat niet helemaal goed.

De discussie of dit wel of niet met tables te maken is of gemaakt zou moeten worden kan ik niet helemaal plaatsen. Ben niet echt een HTML-er, maar wat ik zo nu en dan lees is dat het gebruik van tables in
code:
1
2
3
<table height="100%">
 ...
</table>


geen XHTML code is. Maar dat neemt allemaal niet weg dat ik er nog niet uit ben hoe te doen met divs.

  • colbrac
  • Registratie: Februari 2003
  • Niet online
Ik heb hetzelfde probleem ondervonden met het bouwen van een website, waarbij ik de layout ook nog links en rechts een vaste rand wilde geven en dus een fluid center.
De oplossing voor jou zou moeten zijn:
code:
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
html,body {
    height: 100%;
        }

#boven {
    position: absolute;
    top: 10px;
    left: 0px;
    height: 40px;
    z-index: 1;
    }

#midden {
    position: absolute;
    top: 0px;
    left: 50%;
    width: 900px;
    height: 100%;
    border-style: solid;
    border-color: white;
    border-width: 60px 0px;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    overflow: auto;
    }

#onder {
    position: absolute;
    bottom: 10px;
    left: 0px;
    height: 40px;
    z-index: 1;
    }


Eerst zorg je dat de body 100% van de viewport (het browserscherm) vult, midden wordt een div met dikke randen en boven en onder plaats je op die dikke rand. Je misbruikt hier de border-box bug in IE en gebruikt het feit dat Opera en FF in ieder geval in de recenste versies al CSS3 ondersteunen.
Het nadeel aan deze layout is dat Safari en IE voor de mac het niet aan kunnen.
Het uiteindelijke resultaat is een website waar 'boven' en 'onder' ook echt altijd boven en onderaan de viewport staan.
p.s. Met een midden van 900 px dwing je mensen al snel naar 1280x1024 voor goede weergave.. is dat de bedoeling?

edit: Ik vergeet helemaal te melden dat er aan deze oplossing nog 1 redelijk nadeel kleeft. Als je een doctype declareert gaat het fout in IE.. 8)7
Of je nu html 4 transitional of xhtml 1.0 strict gebruikt, met een doctype snapt IE het niet meer. Ik vond de layout op deze manier krijgen zoals ik wil belangrijker dan een doctype declareren. De browsers snappen het blijkbaar wel, en de W3.org validator heeft dan maar even pech. (Pagina is voor de rest wel helemaal 1.0 strict)

[ Voor 17% gewijzigd door colbrac op 01-11-2004 13:09 ]


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

De vraag die je stelt komt bij mij een beetje overeen met één die Gordijnstok in het verleden ooit heeft gesteld en waar o.a. crisp een oplossing voor heeft aangeleverd, zie:

[rml][ css] 3 rows, 2 vast, de ander zoekt het maar uit[/rml]

Verwijderd

Topicstarter
Woudloper schreef op 01 november 2004 @ 13:07:
De vraag die je stelt komt bij mij een beetje overeen met één die Gordijnstok in het verleden ooit heeft gesteld en waar o.a. crisp een oplossing voor heeft aangeleverd, zie:

[rml][ css] 3 rows, 2 vast, de ander zoekt het maar uit[/rml]
Yep! Dat is de oplossing. Thanks!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

offtopic:
JAG is inderdaad al een hele tijd geleden gemaakt, en met een brede doelgroep, dus inderdaad ook zwaar verouderde browsers. Gelukkig staat de tijd niet stil en moet je ook vooruit durven kijken. Tables voor layout hebben daarin geen plaats meer.
Topicstarter gebruikt hier zelfs XHTML 1.1 strict wat al wil zeggen dat hij Internet Explorer al uitsluit (als hij het tenminste goed toepast).

Intentionally left blank


  • Reinier
  • Registratie: Februari 2000
  • Nu online

Reinier

\o/

Verwijderd schreef op 01 november 2004 @ 12:36:
@ crisp
jep, ik ben webdisigner, en inderdaad sinds de vorige eeuw ;)

Ik bedoel gewoon, waarom zou je hier geen tables mogen gebruiken? Ze werken in alle browsers (als webdisigner moet je ook rekening houden met oude browsers), en als div's problemen geven, waarom zou je dit niet mogen oplossen met een good old table?
Als je me kan overtuigen, doe maar... In het andere geval ben ik dan maar een ou-bollige webdisigner...
NOFI, maar ik ben benieuwd wat er op jouw visitekaartjes enzo staat ;)

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op 01 november 2004 @ 12:36:

Ik bedoel gewoon, waarom zou je hier geen tables mogen gebruiken? Ze werken in alle browsers (als webdisigner moet je ook rekening houden met oude browsers), en als div's problemen geven, waarom zou je dit niet mogen oplossen met een good old table?
Als je me kan overtuigen, doe maar... In het andere geval ben ik dan maar een ou-bollige webdisigner...
Lijkt me tijd dat je zowel op GoT als met google gaat zoeken naar Table designs ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Reinier schreef op 01 november 2004 @ 13:22:
[...]


NOFI, maar ik ben benieuwd wat er op jouw visitekaartjes enzo staat ;)
Damn :*) , gelukkig heb ik geen visitekaartjes...
Ik zal me vandaag eens bezig houden met het opzoeken waarom ik geen tables meer mag gebruiken in gevallen zoals deze... (ben nog niet overtuigd hoor)

@ crisp
>>en met een brede doelgroep, dus inderdaad ook zwaar verouderde browsers

Als je een website maakt, is je doelgroep dan niet altijd breed, dus zou je altijd tables moeten gebruiken?

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 01 november 2004 @ 13:43:
[...]
@ crisp
>>en met een brede doelgroep, dus inderdaad ook zwaar verouderde browsers

Als je een website maakt, is je doelgroep dan niet altijd breed, dus zou je altijd tables moeten gebruiken?
Nee, je doelgroep kan ook heel specifiek zijn, zoals hier op GoT bijvoorbeeld.
Daarbij zijn de versie 4 browsers inmiddels al uitgestorven, en worden versie 5 browsers ook steeds minder gebruikt. Voor mensen die nog wel met zo'n oud lijk surfen zijn er inmiddels voldoende goede alternatieven. De redenatie dat je oude browsers moet blijven ondersteunen gaat hedentendage dus ook veel minder op dan pakweg een jaar of twee jaar geleden...

[ Voor 4% gewijzigd door crisp op 01-11-2004 13:54 ]

Intentionally left blank


  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

Verwijderd schreef op 01 november 2004 @ 13:43:
[...]
Ik zal me vandaag eens bezig houden met het opzoeken waarom ik geen tables meer mag gebruiken in gevallen zoals deze... (ben nog niet overtuigd hoor)
Door het gebruik van een table beschrijf je de inhoud van je element als tabulaire data, terwijl dat (waarschijnlijk) niet het geval is. Jij gebruikt een table om bepaalde dingen juist te plaatsen en dat is niet juist. Je moet je elementen niet uitkiezen op hun opmaakeigenschappen, maar op basis van de overweging of het element het beste de inhoud ervan beschrijft. Layout kun je namelijk altijd nog met CSS doen. In het geval van TS is er gewoon geen sprake van tabulaire *gegevens* en dan moet je dus ook niet dat element gebruiken.

Stel nu dat TS zijn site opbouwt met een tabel en hij maakt drie tablerows om zijn probleem op te lossen... Mocht hij later die drie onderdelen náást elkaar willen hebben, dan kan hij in z'n HTML gaan zitten klooien om die hele tabel te herschrijven. Stop je het echter in divjes, dan heb je momenteel even wat problemen om ervoor te zorgen dat alles werkt zoals je 't wilt hebben, maar mocht je dan over een maand besluiten om je headersectie onderaan te zetten, en je footer naastje maincontent, dan kun je dat eenvoudig via de CSS aanpassen zonder aan je HTML te hoeven komen.

Bovendien kun je op die manier uitermate flexibel verschillende opmaken definiëren voor verschillende mediatypen. Door divjes te gebruiken voor verschillende onderdelen en daar een verschillende CSS aan te hangen voor verschillende mediatypen, kan ik bijvoorbeeld voor PDA's een eigen stylesheet definiëren die overbodige onderdelen niet weergeeft. Ook kan ik bijvoorbeeld een driekolomslayout netjes via een aparte stylesheet verbouwen zodat alles in één kolom wordt weergegeven, wat veel prettiger werkt op een PDA. En het mooiste van alles: ik hoef helemaal niet in mijn HTML te prutsen, dat blijft hetzelfde! :)
Als je tabellen gaat gebruiken dan ben je die flexibiliteit compleet kwijt.

Op deze site staan nog een aantal overwegingen, maar ik denk dat je zelf ook genoeg overtuigende pleidooien kunt vinden als je ernaar zoekt. :)

[ Voor 5% gewijzigd door Superdeboer op 01-11-2004 14:07 ]

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


  • th3
  • Registratie: Januari 2003
  • Laatst online: 12-07-2025

th3

Verwijderd schreef op 01 november 2004 @ 13:43:
[...]


Damn :*) , gelukkig heb ik geen visitekaartjes...
Ik zal me vandaag eens bezig houden met het opzoeken waarom ik geen tables meer mag gebruiken in gevallen zoals deze... (ben nog niet overtuigd hoor)

@ crisp
>>en met een brede doelgroep, dus inderdaad ook zwaar verouderde browsers

Als je een website maakt, is je doelgroep dan niet altijd breed, dus zou je altijd tables moeten gebruiken?
nr1 http://www.hotdesign.com/seybold/index.html
nr2 http://phrogz.net/CSS/WhyTablesAreBadForLayout.html
nr3 http://www.stopdesign.com/present/2004/sydney/beauty/

als je dan nog niet overtuigt bent hoor ik het graag

Verwijderd

@supderdeboer & th3

Dit is nu eens interessant...
Heb het eens doorgenomen en idd, er zit veel waarheid in: vooral dat van die terrabytes winst per jaar door kleinere html code en sneller voor de browser (wist dit echt niet)...
Ik zal er in ieder geval meer rekening mee houden bij nieuwe projecten... :Y)
Pagina: 1