Toon posts:

[CSS] div onder main content, werkt niet in FF/opera

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb topics over footers en dergelijke zitten lezen, maar ik kan nog niet vinden wat ik wil. Wat ik wil is in principe heel simpel. Met tabellen zou ik het makkelijk voor elkaar kunnen krijgen, maar ik wil graag puur met CSS werken. In bijgevoegde code is te zien dat ik de onderste div (bottom) helemaal onderaan probeer te positioneren door deze simpelweg onder de div (middle) te zetten. In IE werkt dit prima en komt de div (bottom) inderdaad altijd netjes onder de div (middle te staan).

Als ik echter in FF/Opera test dan komt mijn div (bottom) bovenaan in de div (middle) te staan dwars door de content die zich in div (middle) bevindt. Ik kan div (bottom) wel verder naar onderen krijgen door div (middle) een height mee te geven. Dan komt de div (bottom) direct onder de opgegeven hoogte te staan. Je kunt het dan natuurlijk zo afpassen dat ie precies onder div (middle) terecht komt, maar veel van mijn pagina's hebben inhoud die uit een db komt waardoor de hoogte van div (middle) varieert. Een hoogte meegeven aan div (middle) is dus geen oplossing.

Is er een manier om te realiseren wat ik wil zonder een hoogte mee te geven aan div (middle). Let wel: ik wil dus niet dat div (bottom) precies onder in beeld komt of zo (wat veel anderen willen las ik in andere topics). div (bottom) moet ongeacht de hoogte van div (middle) gewoon altijd direct onder div (middle) komen.

Hier mijn (vereenvoudigde) codevoorbeeld:

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
<!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>Untitled Document</title>
</head>
<style>
#container {
    margin:0 auto;
    width:770px;
    text-align:center;
}
#top {
    background-image:url(images/top.jpg);
    background-repeat:no-repeat;
    width:770px;
    height:81px;
}
#middle {
    width:770px;
}
#bottom {
    width:770px;
    height:30px;
    vertical-align:middle;
    border-color:#000000;
    border-style:solid;
    border-width:1px;
}
</style>
<body>
<div id="container">
  <div id="top"></div>
  <div id="middle">
    Hier komt dus de content die steeds wisselend is van hoeveelheid en waardoor dus de werkelijke hoogte van deze div tag ook varieert.
  </div>
  <div id="bottom">
    Deze div moet dus altijd direct onder de content (div middle) komen te staan. 
  </div>
</div>
</body>
</html>

  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03-2025

Crayne

Have face, will travel

Portable Firefox laat hem netjes onder de middelste DIV zien.

Mijn Library Thing catalogus


  • Rowanov
  • Registratie: Februari 2004
  • Niet online

Rowanov

Kop eens wat anders...

Even een opmerking; die vertical-align zou ik vervangen door een line-height van 30px. Misschien dat dit het momenteel verpest.

Edit: Werkt hier in: meest recente Firefox, IE6, IE7 en Opera. Wat wil je nog meer? :P

[ Voor 25% gewijzigd door Rowanov op 18-08-2006 11:34 ]


  • Boelie-Boelie
  • Registratie: November 2004
  • Laatst online: 26-09-2020
Ik zie 'm er ook gewoon onder met FF 1.5.0.6? Of bedoel je dat de footer breder is? Dat kan wel kloppen, want die border wordt opgeteld bij de breedte en hoogte. Zou dus width:768px meegeven bij een border van 1px.

Cogito ergo dubito


Verwijderd

Topicstarter
Sorry jongens! Ik dacht dat het makkelijk was om een vereenvoudigd voorbeeld te geven, maar kennelijk werkt het dan wel gewoon |:( Hier mijn code van de pagina, waarbij het bij mij in FF absoluut niet werkt (zojuist nog getest). Wellicht heeft het er mee te maken dat ik gebruikmaak van float? Als iemand een oplossing weet, heel graag!

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
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>
#container {
    margin:0 auto;
    width:770px;
    text-align:center;
}
#top1 {
    background-image:url(images/top1.jpg);
    background-repeat:no-repeat;
    width:770px;
    height:81px;
}
#top2 {
    background-image:url(images/top2.jpg);
    background-repeat:no-repeat;
    width:770px;
    height:23px;
    text-align:left;
    vertical-align:middle;
}
#top3 {
    background-image:url(images/top3.jpg);
    background-repeat:no-repeat;
    width:770px;
    height:21px;
    text-align:left;
    vertical-align:middle;  
}
#middle {
    width:770px;
}
#bottom {
    width:770px;
    height:30px;
    vertical-align:middle;
    border-color:#000000;
    border-style:solid;
    border-width:1px;
}
#left {
    width:215px;
    height:300px;
    float:left;
    margin:0px;
    padding:0px;
}
#left1 {
    width:202px;
    height:80px;
    background-image:url(images/Left1.jpg);
    background-repeat:no-repeat;
    text-align:left;
    padding-left:13px;
    padding-top:14px;
}
#left2 {
    width:210px;
    height:24px;
    background-image:url(images/Left2.jpg);
    background-repeat:no-repeat;
    vertical-align:middle;
    padding-left:5px;
    padding-top:2px;
    text-align:left;
}
#left3 {
    width:215px;
    height:29px;
    background-image:url(images/Left3.jpg);
    background-repeat:no-repeat;
}
#left4 {
    width:213px;
    height:100%;
    background-image:url(images/Left4.jpg);
    background-repeat:no-repeat;
    text-align:left;
    padding-left:2px;
    font-family:Arial, Helvetica, sans-serif;
    font-size:10px; 
}
#right {
    width:555px;
    height:300px;
    float:right;
    text-align:center;
}
</style>

</head>

<body>
<div id="container">
  <div id="top1">
  </div>
  <div id="top2">
  </div>
  <div id="top3">
  </div>    
  <div id="middle"> 
    <div id="left">
      <div id="left1">
      </div>
      <div id="left2">
      </div>
      <div id="left3"></div>
      <div id="left4">
      </div>
    </div>
    <div id="right">
    tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst tekst 
    </div>
  </div>
  <div id="bottom"></div>
</div>
</body>
</html>

  • Rowanov
  • Registratie: Februari 2004
  • Niet online

Rowanov

Kop eens wat anders...

Als je dat voorbeeld dan ook ergens host, dan is het wat toegankelijker voor bezoekers om mee te denken. Nu moet je de code knippen en plakken en in een pagina stoppen.

Edit: waarom voeg je die top divs niet samen tot 1 div met 1 background?

Ik zie het probleem, je #middle heeft geen hoogte om je de floats er in niet cleart, met als gevolg dat alles bovenaan staat. Voeg eens overflow: auto; toe aan je #middle.

[ Voor 44% gewijzigd door Rowanov op 18-08-2006 12:49 ]


Verwijderd

Topicstarter
Bedankt voor je reactie. Ik gebruik meerdere top div's, omdat ik binnen deze div's ook nog inhoud heb, deze kan ik makkelijker positioneren als ik het topgedeelte opdeel in meerdere delen.

Ik heb je oplossing geprobeerd, maar deze werkt bij mij niet helemaal. Div (bottom) komt nu weliswaar onderaan, maar in FF krijg ik nu een verticale scrollbalk binnen div (middle). Hier heb ik een voorbeeld online staan (goede opmerking trouwens):

http://members.chello.nl/f.bos32/

  • Boelie-Boelie
  • Registratie: November 2004
  • Laatst online: 26-09-2020
Verwijderd schreef op vrijdag 18 augustus 2006 @ 13:14:
in FF krijg ik nu een verticale scrollbalk binnen div (middle).
Dat komt doordat je #right een hoogte hebt meegegeven.

Cogito ergo dubito


Verwijderd

Topicstarter
Shit ja, had ik niet gezien (wel tien keer over heen gekeken). Bedankt voor de hulp, werkt perfect nu!
Pagina: 1