Ik zit met een nare bug en ik doe waarschijnlijk wat fout. Ik heb een "favoriete menu items" menubar die perfect eruit ziet onder IE6, maar brak onder Mozilla/Firebird. Waarschijnlijk doe ik iets niet volgens de specs, en negeert IE dit.
Doordat de buttons in columns staan bepaal ik elke nieuwe column door de grootste button uit de vorige column te pakken qua offsetWidth. Doordat Mozilla de DIV die ik om een button heb geplaatst niet meeschaald krijg ik incorrecte offsetWidths terug, en lopen de columns over elkaar heen. Ik wil de columns geen vaste breedtes geven omdat je zo tussen columns rare lappen whitespace kunt krijgen.
Mozilla gaat wel meeschalen zodra ik de container relative positioneer.
Waar ga ik de fout in? ..
De doctype is:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Het resultaat in IE6 :

Het resultaat in Mozilla en Firebird

De javascript die dit opbouwt:
favMenuCurY wordt bepaald adhv columns en rows.
De css:
Wat zorgt er hiervoor dat de div niet meeschaalt?
Doordat de buttons in columns staan bepaal ik elke nieuwe column door de grootste button uit de vorige column te pakken qua offsetWidth. Doordat Mozilla de DIV die ik om een button heb geplaatst niet meeschaald krijg ik incorrecte offsetWidths terug, en lopen de columns over elkaar heen. Ik wil de columns geen vaste breedtes geven omdat je zo tussen columns rare lappen whitespace kunt krijgen.
Mozilla gaat wel meeschalen zodra ik de container relative positioneer.
Waar ga ik de fout in? ..
De doctype is:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Het resultaat in IE6 :

Het resultaat in Mozilla en Firebird

De javascript die dit opbouwt:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| favMenuButton.prototype.create = function(){ this.button = document.createElement("DIV"); this.button.className = 'fbutton'; this.button.obj = this; this.ficon = document.createElement("IMG"); this.ficon.src = this.icon; this.button.appendChild(this.ficon); this.label = document.createElement("DIV"); this.label.className = 'caption'; this.label.appendChild(document.createTextNode(this.caption)); this.button.appendChild(this.label); this.button.onclick = favMenuButton_onClick; this.button.onmouseover = favMenuButton_onMouseover; this.button.onmouseout = favMenuButton_onMouseout; this.button.onmousedown = favMenuButton_onMousedown; this.button.onmouseup = favMenuButton_onMouseup; this.button.style.top = favMenuCurY +'px'; this.button.style.left = favMenuCurX +'px'; |
favMenuCurY wordt bepaald adhv columns en rows.
De 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
| #cmd_Container{ position:absolute; top:40px; left:250px; width:100%; height:65px; overflow:hidden; } #cmd_Listing{ position:absolute; top:0px; left:25px; } .favoritesCol{ float:left; filter: alpha(opacity=50); -moz-opacity: .5; -khtml-opacity: .5; } .fbutton, .fbutton_hot, .fbutton_down { position:absolute; font-family:arial; font-size:11px; color:white; cursor: hand; cursor: pointer; margin-bottom:2px; white-space:nowrap; } .fbutton{ padding:2px; } .fbutton_hot{ padding:1px; border:1px solid #6B6A72; background-image:url(../../styles/blue/gfx/btnbg2.gif); } .fbutton_down{ padding:1px; border:1px solid #6B6A72; background-image:url(../../styles/blue/gfx/btnbg.gif); } .fbutton img, .fbutton_hot img, .fbutton_down img{ vertical-align:middle; } /*label div in favorite button*/ .fbutton div, .fbutton_hot div, .fbutton_down div{ display:inline; margin:0px 5px 0px 5px; height:16px; vertical-align:middle; } |
Wat zorgt er hiervoor dat de div niet meeschaalt?
[ Voor 8% gewijzigd door drm op 23-01-2004 09:01 . Reden: ff codetags toegevoegd :) ]