[CSS] scrollbar (IE) loopt door div

Pagina: 1
Acties:

  • DelTorro
  • Registratie: December 2004
  • Laatst online: 01-01-2024
Enkele dagen geleden heb ik mijn site helemaal opnieuw in elkaar gezet. Eerst maakte ik gebruik van frames, nu bestaat alles uit divs, jeuh ;) .

De site is als volgt opgebouwd:
<div_top: vaste hoogte, vaste breedte>
<div_header: vaste hoogte, vaste breedte>
<div_content: variabele hoogte, vaste breedte>
<div_footer: vaste hoogte, vaste breedte>

Ik ben echter tegen een probleem aangelopen dat alleen in IExplorer optreedt: de scrollbar (die ervoor moet zorgen dat tekst binnen de contentdiv scrollt) loopt door mijn footerdiv heen.

plaat-fout:
Afbeeldingslocatie: http://img395.imageshack.us/img395/4972/plaatfout8bg.jpg

plaat-goed:
Afbeeldingslocatie: http://img395.imageshack.us/img395/7076/plaatgoed0eh.jpg

Nu is mijn vraag natuurlijk: weet iemand hier een oplossing voor?

Voor oplossingen heb ik hier rondgezocht op GoT en gegoogled. Ik heb gelezen over een bug in IExplorer maar kon niet opmaken of dat ook dit probleem betreft. Zelf denk ik dat ik iets moet aanpassen in de CSS maar niets heeft tot nu toe nog geholpen. Heb ook de contentdiv binnen een andere div geplaatst maar dat werkt niet (logisch, denk ik).

Ik er wel achter gekomen dat als ik de code voor W3C doctype enz. weghaal, het wel correct werkt. Heb toch liever een oplossing in CSS (als dat mogelijk is) want dan is de site crossbrowser compatible én voldoet hij aan de W3C-standaard.

Hier nog de (relevante) code van de pagina:
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>WK Manager 2006</title>
<link rel="shortcut icon" href="../pics/favicon.ico"/>
<link rel="stylesheet" href="css/WKM06.css"/>
<script type="text/javascript" src="js/menu.js"></script>
</head>

<body>
<div id="container">
   <div id="top">[img]"../pics/logo.jpg"[/img]</div>

   <div id="header">
      code voor menu
   </div>

  <div id="content">
     veel tekst  
  </div>

  <div id="footer"></div>
</div>
</body>

</html>


En de (relevante) CSS code:
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
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
html, body {
    text-align: center;
    height: 100%;
    overflow: hidden;
    padding: 0px;
    margin: 0px;
    background-color: #142433;
}

div {
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

#container {
    text-align: left;
    height: 100%;
    width: 763px;
    padding-top: 169px;
    padding-bottom: 22px;
    margin-left: auto;
    margin-right: auto;
}

#top {
    position: absolute;
    text-align: left;
    height: 34px;
    width: 100%;
    top: 0px;
    background-image: url(../../pics/bg.jpg);
    background-repeat: no-repeat
}

#header {
    position: absolute;
    text-align: left;
    height: 135px;
    width: 763px;
    top: 34px;
    background-image: url(../../pics/header.jpg);
    background-repeat: no-repeat
}

#content {
    position: relative;
    text-align: justify;
    height: 100%;
    padding: 10px 15px;
    overflow: auto;
    background-color: #16293a;
    -moz-outline: none;
}

#footer {
    position: absolute;
    width: 763px;
    height: 22px;
    bottom: 0px;
    background-color: #142433;
}


P.S.: Let niet op de tekst in de contentdiv, dat is een stuk uit een column van Johan Derksen

  • Boelie-Boelie
  • Registratie: November 2004
  • Laatst online: 26-09-2020
Jouw layout lijkt op Stu Nicholls' fixed layout 1. Misschien heb je wat aan de source van die pagina?

Enkele ideeën:
- je probleem kan te maken hebben met je gebruik van padding. Die kun je beter zetten op de tekst binnen de omvattende div (bijv. op een alinea of heading) dan op de omvattende div zelf. Probeer eens de layout te maken zonder padding.
- ander (aanvullend?) idee: het kan ook te maken met browserspecifieke CSS zoals die -moz-dingen. Ik zou proberen de layout voor elkaar te krijgen zonder die regels. Daarna IE-specifieke regels binnen conditional comments gebruiken om het in IE goed te krijgen. (In de zojuist genoemde layout wordt gebruik gemaakt van de* html hack.)

Cogito ergo dubito


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
ik snap niet helemaal waarom je gekozen hebt voor absolute positionering waar je ook prima gebruik kunt maken van relatieve.

ik zou trouwens helemaal geen hacks gaan gebruiken voor iets als dit, dat is nergens voor nodig, het moet ook prima zonder kunnen

This message was sent on 100% recyclable electrons.


  • DelTorro
  • Registratie: December 2004
  • Laatst online: 01-01-2024
BasieP schreef op donderdag 22 december 2005 @ 20:50:
ik snap niet helemaal waarom je gekozen hebt voor absolute positionering waar je ook prima gebruik kunt maken van relatieve.
Over de positioning van welke div heb je het? De footer div zou relative kunnen maar dan snap ik niet goed hoe de content div zijn variabele hoogte kan behouden.
ik zou trouwens helemaal geen hacks gaan gebruiken voor iets als dit, dat is nergens voor nodig, het moet ook prima zonder kunnen
Ik denk dat ik echt niet zonder hacks kan in dit geval als ik wil dat het ook in IExplorer werkt

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
DelTorro schreef op donderdag 22 december 2005 @ 21:28:
[...]

Over de positioning van welke div heb je het? De footer div zou relative kunnen maar dan snap ik niet goed hoe de content div zijn variabele hoogte kan behouden.


[...]

Ik denk dat ik echt niet zonder hacks kan in dit geval als ik wil dat het ook in IExplorer werkt
dat kan ook anders, hacks zijn sowieso vies.

ik had het over de header en het menu, die zijn echt niet nodig dat ze absolute zijn.
de footer moet idd wel absolute als je wilt dat je content div wil laten oprekken

This message was sent on 100% recyclable electrons.


  • DelTorro
  • Registratie: December 2004
  • Laatst online: 01-01-2024
Ik wil ook graag zonder hacks want die stinken idd. Kom er alleen niet echt meer uit. Heb je mss zelf een kleine opzet?

edit: ik heb even getest met position: relative voor de top- en headerdiv maar dan heb ik in firefox hetzelfde probleem met de scrollbar als ik nu in IExplorer heb. Er lijkt dus alleen maar een probleem bij te komen

[ Voor 48% gewijzigd door DelTorro op 22-12-2005 22:16 ]


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
DelTorro schreef op donderdag 22 december 2005 @ 21:55:
Ik wil ook graag zonder hacks want die stinken idd. Kom er alleen niet echt meer uit. Heb je mss zelf een kleine opzet?

edit: ik heb even getest met position: relative voor de top- en headerdiv maar dan heb ik in firefox hetzelfde probleem met de scrollbar als ik nu in IExplorer heb. Er lijkt dus alleen maar een probleem bij te komen
dat scrolbar probleem komt doordat je zegmaar een grote div heb, van 100% height, daarin heb je nog een aantal divs, waarvan er 1 ook 100% hoog is. Dit is al fout, want doordat die absolute is, en niet relative aan de parent/vorige div is het zo dat 100% van de binnenste div ook gewoon even hoog is als de 100% van de buitenste div.

ik weet niet of er een 100%-xxpx optie is, (volgens mij niet) maar anders moet je al je divjes een % hoogte geven, en dan word je binnenste (content) div dus bijv 80%, waardoor de scrollbar opeens niet meer over de andere divjes heen loopt

This message was sent on 100% recyclable electrons.


  • DelTorro
  • Registratie: December 2004
  • Laatst online: 01-01-2024
BasieP schreef op donderdag 22 december 2005 @ 23:49:
[...]

ik weet niet of er een 100%-xxpx optie is, (volgens mij niet) maar anders moet je al je divjes een % hoogte geven, en dan word je binnenste (content) div dus bijv 80%, waardoor de scrollbar opeens niet meer over de andere divjes heen loopt
Ja, maar dan hebben de divs geen vaste hoogte meer en dat moet natuurlijk wel, aangezien er plaatjes in staan.
Op zich is de code niet heel erg fout denk ik want als ik in mijn pagina de regel
code:
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

weghaal, werkt alles perfect. Dus zowel in IExplorer als in firefox en opera.

Crisp misschien een idee?

  • Sappie
  • Registratie: September 2000
  • Laatst online: 17:17

Sappie

De Parasitaire Capaciteit!

het werkt dus alleen in IE niet goed.. wellicht dat je dan es een IE only expression kan overwegen om de hoogte van de content div mee aan te geven.

kijk bijvoorbeeld hier: http://msdn.microsoft.com...dhtml/overview/recalc.asp (maar er is genoeg over te vinden verder op internet)

verder.. het weghalen van de DTD maakt (zoals je wss wel weet) dat IE rendert aan de hand van het border-box box-model. Je kan deze quirksmode ook op een andere manier forceren.. namelijk door een html comment boven de DTD te zetten, maar of dat is wat je wilt. Het border-box box-model gooit namelijk roet in het eten bij gebruik van margins.

[ Voor 40% gewijzigd door Sappie op 23-12-2005 12:38 ]

Specs | Audioscrobbler


  • DelTorro
  • Registratie: December 2004
  • Laatst online: 01-01-2024
Ik heb nog even gekeken naar de code van Crisp in een andere post. Mijn bedoeling was om hier een linker- en rechterkolom omheen te plaatsen maar de gegeven code blijkt niet in Opera 8 te werken helaas.

edit: doet 't in opera toch wel mits je er
code:
1
 box-sizing: border-box;
bijzet.
Misschien kan ik hier dan wat mee prutsen, ik blijft dan nog gebruik maken van hacks, maargoed

[ Voor 27% gewijzigd door DelTorro op 23-12-2005 16:54 ]


  • Sappie
  • Registratie: September 2000
  • Laatst online: 17:17

Sappie

De Parasitaire Capaciteit!

box-model switching wordt in safari niet ondersteund afaik

Specs | Audioscrobbler


  • DelTorro
  • Registratie: December 2004
  • Laatst online: 01-01-2024
Ben gelukkig tot een goede oplossing gekomen. Heb de link die Boelie-Boelie in zijn post gaf nog eens nagekeken en heb die code overgenomen en stukje voor stukje aangepast zodat mijn site eruit kwam te zien zoals ik dat wil. Nu voldoet de code van de site aan W3C standaard (ook de CSS) en hij is crossbrowser (ik heb getest met IE, Firefox, Opera en Netscape).
Het enige wat nu nog moet is inhoud toevoegen maar dat is natuurlijk het minst leuke. Daar wacht ik nog maar even mee :)

edit: nog dank voor de antwoorden

[ Voor 4% gewijzigd door DelTorro op 24-12-2005 02:23 ]

Pagina: 1