[css] Onverklaarbare ruimte onder div

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • DJH
  • Registratie: Oktober 2000
  • Laatst online: 13-07 00:54
Ik ben bijna ten einde raad, vandaar mijn vraag aan jullie.

In de screenshot een website die volledig uit div's bestaat. Via de webdevelopment tool in Firefox heb ik de div's laten omlijnen met de naam erbij.

Duidelijk is te zien dat onder de #content div een ruimte van ongeveer 150 pixels zit, die ik er maar niet uit krijg. Aan de linkerkant zit een div met de adresgegevens.
Het lijkt dat de content div rekening houdt met de linker div (#left). Maar dat is dus niet zo. Als ik #left volledig uitschakel, blijft de website precies even hoog, dus daar ligt het niet aan.

De website rekt bij langere content prima mee, maar er blijft dus een ruimte onder de content div. Ik heb zowat alle hoogte's van de div's al eens aangepast, div's verwijderd, toegevoegd, maar kom er maar niet uit.

De screenshot:
Afbeeldingslocatie: http://www.15d.nl/website_css.png

CSS
Cascading Stylesheet:
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
123
124
125
126
127
128
129
130
body#bodymain
{ 
background-image: url(/website/images/background.jpg); 
background-repeat: no-repeat; 
background-attachment: absolute; 
background-position: top center;
line-height: 16px; 
}

h1,h2,h3,h4,h5,h6,pre,form,body,html,blockquote,fieldset,input
{ margin:0; padding:0; }

p
{ margin-top:0px; padding-top:0px;  margin-bottom:4px; padding-bottom:4px; }


h1
{ font-size: 20px; font-weight: none; font-family: Lucida sans; color: #0c3b49;  }


a:link    { font-weight: none; text-decoration: underline; color: #0c3b49;}
a:active  { font-weight: none; text-decoration: underline; color: #0c3b49;}
a:visited { font-weight: none; text-decoration: underline; color: #0c3b49;}
a:hover   { font-weight: none; text-decoration: underline; color: #000000;}

div#siteHolder
{ margin: 0px auto 0px auto; width: 750px; }

#distance {
position: relative;
width:1px;
height:30px;

}

div#container
{

background-image: url(/website/images/c_back.png); 
background-repeat: no-repeat; 
background-attachment: absolute; 
background-position: top center;
text-align:left;
position: relative;
width: 750px;
}

div#menu
{
position: relative;
left: 255px;
top: -30px;
height: 20px; 
width: 400px; 

}


div#logo
{
background-image: url(/website/images/logo.png); 
background-repeat: no-repeat; 
background-attachment: absolute; 
background-position: top right; 
position: relative;
left: 255px;
top: 10px;
height: 95px; 
width: 425px; 

}

div#submenu
{
position: relative;
text-align: left;
top: 100px;
left: 49px;
width: 160px;
height: 160px;
color: #0c3b49;
font-weight: bold;

}

div#left
{
position: absolute;
text-align: right;
bottom: 35px;
left: 40px;
width: 160px;
height: 160px;
color: #0c3b49;
font-weight: bold;

}

div#content
{
position: relative;
min-height: 275px;
width: 420px;
top: -160px;
left: 256px;

}

div#footer
{
background-image: url(/website/images/footer.png); 
background-repeat: no-repeat; 
background-attachment: absolute; 
background-position: bottom right; 
color: white;
position: relative;
bac/kground-color: #bbc5ce;
font-size: 10px;
height: 94px;
width: 100%;
text-align: center;
}

div#footer2
{
position: relative;
border:solid 0px blue;
top: 69px;

}


HTML:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<div id="siteHolder">

 <div id="distance"></div>

 <div id="container">

  <div id="logo"></div>

  <div id="menu">
   <table>menu boven</table>
  </div>

  <div id="left">adres</div>

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

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

 </div>

</div>

Acties:
  • 0 Henk 'm!

  • Asator
  • Registratie: December 2009
  • Laatst online: 12-02-2024
Je zegt dat je de namen van de div's opgezocht hebt met de webdevelopment tool in Firefox. Volgens mij kan je ook zo het probleem vinden via die tool (Firebug?), of minstens waar ergens in je code de fout kan zitten.

Nu post je gewoon al je css en wat html en verwacht dat iemand anders het allemaal door gaat lezen voor je.
Je zou beter een voorbeeld online kunnen zetten als je zelf niet weet waar de fout precies zit in de plaats van de hele lap code.

Acties:
  • 0 Henk 'm!

  • Ook al Bezet
  • Registratie: Juli 2004
  • Laatst online: 06-09 19:51
Dat gat heb je gemaakt met top: -160px;

EDIT: Waarom zit je menu trouwens in vredesnaam in een tabel?

[ Voor 45% gewijzigd door Ook al Bezet op 05-03-2010 12:03 ]


Acties:
  • 0 Henk 'm!

  • macciez
  • Registratie: Maart 2008
  • Laatst online: 05-09 20:31
Is het niet je container div die zich aanpast ipv de content div?

Do what you love, do it often


Acties:
  • 0 Henk 'm!

  • DEiE
  • Registratie: November 2006
  • Laatst online: 16-08 19:21
Heb je ook een online testcase? Dat experimenteerd beter met mogelijke oplossingen.

Acties:
  • 0 Henk 'm!

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 16:55

RM-rf

1 2 3 4 5 7 6 8 9

Ook al Bezet schreef op vrijdag 05 maart 2010 @ 12:00:
Dat gat heb je gemaakt met top: -160px;
inderddaa. de position: relative; in combinatie met die top: -160px betekent dat het element op de originele positie gerenderd wordt en daar ook de ruimte 'inneemt, maar afgebeeld wordt op een positie die 'ge-herpositioneerd' voorkomt, namelijk 160pixel hoger dan het element eigenlijk staat...
dat schept inderdaad eronder een schijnbaar 'gat' van 160px.

het probleem is nu die "div#submenu ", die 160 pixel hoog is, en eigenlijk 'boven' de content staat en deze naar onder drukt, maar via relative positionering verplaatst is, waarna ook die content naar boven moest schuiven...
imho zou je dat submenu nu juist absoluut moeten positioneren, om deze uit de 'flow' te halen.

[ Voor 23% gewijzigd door RM-rf op 05-03-2010 12:18 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 19:46

MueR

Admin Tweakers Discord

is niet lief

Waarom heb je uberhaupt alles absoluut of relatief gepositioneerd? Waarom werk je niet gewoon met de flow mee? Dat kan met deze simpele layout makkelijk.

[ Voor 16% gewijzigd door MueR op 05-03-2010 12:23 ]

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 22:03

Matis

Rubber Rocket

Daarnaast missen er nog wat quotes en zit er nog een typefout in je css.

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • DJH
  • Registratie: Oktober 2000
  • Laatst online: 13-07 00:54
Allen bedankt voor jullie reactie! 8) De top -160px was inderdaad het probleem. Het menu heb ik nu absolute en dan kan de content op top: 0px;

De oplossing is weer es makkelijker dan ik had verwacht :P
Ook al Bezet schreef op vrijdag 05 maart 2010 @ 12:00:
Dat gat heb je gemaakt met top: -160px;

EDIT: Waarom zit je menu trouwens in vredesnaam in een tabel?
Die tabel is voor het bovenste menu, met drie menu items. Zo kan ik de 3 items makkelijk (vind ik) uitlijnen. Daar is een tabel toch ook eigenlijk voor bedoeld?

Acties:
  • 0 Henk 'm!

  • kaesve
  • Registratie: Maart 2009
  • Laatst online: 16-05 03:04
Neen, tabellen zijn bedoelt voor het weergeven van tabulaire data.. menu-items vallen ábsoluut niet onder die noemer.
beter gooi je je menu-items in een lijstje (het is immers niet meer dan een opsomming van plekken op je site) en zorg je met een beetje css dat de list items netjes naast elkaar komen te staan. daar is niks moeilijks aan

Acties:
  • 0 Henk 'm!

  • Ook al Bezet
  • Registratie: Juli 2004
  • Laatst online: 06-09 19:51
DJH schreef op vrijdag 05 maart 2010 @ 15:10:
Die tabel is voor het bovenste menu, met drie menu items. Zo kan ik de 3 items makkelijk (vind ik) uitlijnen. Daar is een tabel toch ook eigenlijk voor bedoeld?
ehm, NEE!, niet dus. Tabellen zijn bedoeld voor tabulaire data. Menu's horen in lijsten <ul>, die je vervolgens met CSS vorm kunt geven. Als je de lijst horizontaal weer wilt geven kun je dat met display:inline; doen.

Acties:
  • 0 Henk 'm!

  • DJH
  • Registratie: Oktober 2000
  • Laatst online: 13-07 00:54
Oke, dat was mij niet helemaal bekend. Bedankt voor de uitleg!

Acties:
  • 0 Henk 'm!

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 16:55

RM-rf

1 2 3 4 5 7 6 8 9

DJH schreef op vrijdag 05 maart 2010 @ 15:10:

Zo kan ik de 3 items makkelijk (vind ik) uitlijnen. Daar is een tabel toch ook eigenlijk voor bedoeld?
enkel wanneer het om 'uitlijnen' in zowel verschillende rijen én kolommen gaat..
als je data gewoon een 'plat' lijstje is dat onder elkaar verschijnt, is de UL-tag (Unordered List) véél beter...

visueel die vervolgens te formateren doe je dan met CSS

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen

Pagina: 1