Avatar billede steen_hansen Forsker
02. marts 2004 - 11:47 Der er 50 kommentarer og
1 løsning

Hvorfor er CoolMenu er ikke helt centreret?

Jeg har downloadet sourcekoden til denne menu:

http://www.dhtmlcentral.com/projects/coolmenus/examples/open_onclick.html

Den er ikke fuldstændig centreret, den rager vel ca. 20-25 px til venstre for midten. Kan du se hvor i koden det går galt?
Avatar billede steen_hansen Forsker
02. marts 2004 - 11:47 #1
Ups, koden kommer her:

<script>
/***
This is the menu creation code - place it right after you body tag
Feel free to add this to a stand-alone js file and link it to your page.
**/

//Menu object creation
oCMenu=new makeCM("oCMenu") //Making the menu object. Argument: menuname

oCMenu.frames = 0

//New properties in 4.06 - Set to open and/or close the menu onclick
oCMenu.openOnClick=1
oCMenu.closeOnClick=0

//Menu properties 
oCMenu.pxBetween=1
oCMenu.fromLeft=20
oCMenu.fromTop=86 
oCMenu.rows=1
oCMenu.menuPlacement="center"
                                                           
oCMenu.offlineRoot="file:///C|/Inetpub/wwwroot/dhtmlcentral/projects/coolmenus/examples/"
oCMenu.onlineRoot="http://www.minside.dk"
oCMenu.resizeCheck=1
oCMenu.wait=1000
oCMenu.fillImg="/includes/topmenu/cm_fill.gif"
oCMenu.zIndex=0

//Background bar properties
oCMenu.useBar=1
oCMenu.barWidth="<%=TableWidth%>"
oCMenu.barHeight="menu"
oCMenu.barClass="clBar"
oCMenu.barX=186
oCMenu.barY=86
oCMenu.barBorderX=0
oCMenu.barBorderY=0
oCMenu.barBorderClass=""

//Level properties - ALL properties have to be spesified in level 0
oCMenu.level[0]=new cm_makeLevel() //Add this for each new level
oCMenu.level[0].width=124
oCMenu.level[0].height=22
oCMenu.level[0].regClass="clLevel0"
oCMenu.level[0].overClass="clLevel0over"
oCMenu.level[0].borderX=1
oCMenu.level[0].borderY=1
oCMenu.level[0].borderClass="clLevel0border"
oCMenu.level[0].offsetX=0
oCMenu.level[0].offsetY=0
oCMenu.level[0].rows=0
oCMenu.level[0].arrow="/includes/images/arrow_down.gif"
oCMenu.level[0].arrowWidth=5
oCMenu.level[0].arrowHeight=3
oCMenu.level[0].align="bottom"

//EXAMPLE SUB LEVEL[1] PROPERTIES - You have to specify the properties you want different from LEVEL[0] - If you want all items to look the same just remove this
oCMenu.level[1]=new cm_makeLevel() //Add this for each new level (adding one to the number)
oCMenu.level[1].width=oCMenu.level[0].width-2
oCMenu.level[1].height=22
oCMenu.level[1].regClass="clLevel1"
oCMenu.level[1].overClass="clLevel1over"
oCMenu.level[1].borderX=1
oCMenu.level[1].borderY=1
oCMenu.level[1].align="right"
oCMenu.level[1].offsetX=-(oCMenu.level[0].width-2)/2+20
oCMenu.level[1].offsetY=0
oCMenu.level[1].borderClass="clLevel1border"

//EXAMPLE SUB LEVEL[2] PROPERTIES - You have to specify the properties you want different from LEVEL[1] OR LEVEL[0] - If you want all items to look the same just remove this
oCMenu.level[2]=new cm_makeLevel() //Add this for each new level (adding one to the number)
oCMenu.level[2].width=100
oCMenu.level[2].height=22
oCMenu.level[2].offsetX=0
oCMenu.level[2].offsetY=0
oCMenu.level[2].regClass="clLevel2"
oCMenu.level[2].overClass="clLevel2over"
oCMenu.level[2].borderClass="clLevel2border"
Avatar billede mm12010 Nybegynder
02. marts 2004 - 11:49 #2
uden at vide det, ser det ud som om dette kunne ha noget med det at gøre:

oCMenu.fromLeft=20

prøv at ændre den til:

oCMenu.fromLeft=0
Avatar billede steen_hansen Forsker
02. marts 2004 - 11:51 #3
Ja, den studsede jeg også lidt over, men der sker ikke en dyt, når det tal ændres. Der kunne stå 976509765, og det vil ikke ændre på noget :o)
Avatar billede mm12010 Nybegynder
02. marts 2004 - 12:08 #4
hvad med denne?

oCMenu.level[1].offsetX=-(oCMenu.level[0].width-2)/2+20
prøv:

oCMenu.level[1].offsetX=-(oCMenu.level[0].width-2)/2
Avatar billede steen_hansen Forsker
02. marts 2004 - 12:18 #5
Når der en undermenu i en undermenu, er det denne funktion, der bestemmer, hvor langt under-undermenuen skal rykkes til højre.

Man kan få under-undermenuen til at stå næsten helt oven i undermenuen, eller man kan rykke under-undermenuen laaaangt ud til højre.

Kryptisk? Håber du forstår :o)
Avatar billede steen_hansen Forsker
02. marts 2004 - 12:24 #6
1. Du har nogle menupunkter i en række
2. Er der noget under disse menupunkter (bliver angivet med grafik, i dette tilfælde en pil, der peger ned), trykker du på menupunktet.
3. En menu retter sig ud
4. Er der nogle underliggende menupunkter, bliver det igen angivet med pilen
5. En undermenu retter sig ud, og det er placeringen af denne undermenu man justere på med oCMenu.level[1].offsetX=-(oCMenu.level[0].width-2)/2+20 - den kan justere mod højre/venstre

Sætter man f.eks. denne på:

oCMenu.level[1].offsetX=-(oCMenu.level[0].width-2)/2+200

kommer undermeuen til at stå laaaaaaaaaaangt ovre mod højre, meget langt fra menuen.

Ser den sådan her ud:

oCMenu.level[1].offsetX=-(oCMenu.level[0].width-2)/2+20

står undermenuen næsten oven i menuen.
Avatar billede steen_hansen Forsker
02. marts 2004 - 12:25 #7
Jeg har i dette tilfælde sat den til 62. Så er der en anelse luft mellem de 2 menuer
Avatar billede steen_hansen Forsker
02. marts 2004 - 12:33 #8
Jeg har sat en menu magen til op på en anden side, og den fungerer fint. Men med denne her skal man klikke på menuen, og det er bedre, end at man bare skal føre musen hen over.

Får man ført musen hen over et af menupunkterne på den gamle ved et uheld, retter den sig ud, og det er pi..irriterende. Meget bedre med klik med musen :o)
Avatar billede mm12010 Nybegynder
02. marts 2004 - 13:00 #9
"Meget bedre med klik med musen" << ikke helt enig ;-)

hvad gør disse:

oCMenu.barX=186
oCMenu.barY=86
Avatar billede steen_hansen Forsker
02. marts 2004 - 13:53 #10
Ok, det er smag og behag. Jeg synes det er drønirriterende, hvis man vil noget helt andet, men ved et uheld får ført musen hen over. Så har man en menu, der først skal væk før man kan komme videre :o)

Menuen er jo lavet i layers. Jeg ved ikke hvorfor den er der, men der er et slags "underlag" til menuen. Jeg ved ikke hvordan jeg skal forklare det, men jeg har lavet det i samme størrelse som selve menuen, og den ligger nøjagtigt hvor den skal. Det er så meningen, at selve menuen skal ligge ovenpå, og der er det, at den ligge de 20-25-30 px for langt til venstre.
Avatar billede steen_hansen Forsker
02. marts 2004 - 13:58 #11
Lige et lille tillægsspørgsmål, når det andet er klaret: Hvordan venstrejusterer jeg de links? De er centrerede, og det ser ikke særlig smart ud :/

Det var et lille sidespring. Det andet er vigtigere :o)
Avatar billede steen_hansen Forsker
02. marts 2004 - 14:04 #12
Hov, jeg har fundet ud af det. Noget af det, ihvertfald:

I toppen af alle mine sider, skriver jeg dette ud:

<% Response.Write "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"" ""http://www.w3.org/TR/html4/loose.dtd"">" %>

Da jeg rem'ede den linie ud, virker det perfekt. Men så er det jo nok et spørgsmål om at få koden til at følge W3C's standard?
Avatar billede mm12010 Nybegynder
02. marts 2004 - 14:09 #13
jeg har desværre ikke den store erfaring med at kofigurerer CoolMenus, men hvis du fjerner din DOCTYPE kan du ikke regne med at IE læser din CSS korrekt og at din side ser nogenlunde ens ud i alle browsere...
Avatar billede steen_hansen Forsker
02. marts 2004 - 14:10 #14
Nej, det kan blive lidt af et problem. Specielt med CoolMenu.

Hvis jeg fjerner linket:

<% Response.Write "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"">" %>

- så må det da tælle noget?
Avatar billede htm Nybegynder
02. marts 2004 - 18:02 #15
Sikker på at det er coolmenu der ter sig mærkeligt ? Og ikke dine tabeller igen :-)

Du har vist en enkelt fejl, af hvad jeg kan se:
oCMenu.barHeight="menu"
Denne går jeg ud fra kommer fra asp med tablewidth? Prøv og fjern " omkring, med mindre det er xx% eller lign.
oCMenu.barWidth="<%=TableWidth%>"

Ang. venstrejustering skal du klare det vha. css.
under /*Styles for level 0*/ og .clLevel0,.clLevel0over{ skal du tilføje
text-align: left;

Har du evt. et link til din side?
Avatar billede steen_hansen Forsker
02. marts 2004 - 18:51 #16
Jeg TROR ikke det er mine tabeller :o)

Jeg har sendt dig et link
Avatar billede steen_hansen Forsker
02. marts 2004 - 19:08 #17
Du mener sådan her?

/*Styles for level 0*/
.clLevel0,.clLevel0over{position:absolute; padding:2px; font-family:geneva,verdana,helvetica; font-size:11px; font-weight:bold}
text-align: left;
Avatar billede steen_hansen Forsker
02. marts 2004 - 19:09 #18
Sorry, jeg har den nu :o)
Avatar billede steen_hansen Forsker
02. marts 2004 - 19:37 #19
Jeg har ændret denne:

oCMenu.barHeight="menu"

til

oCMenu.barHeight="22"

Du har ret, det er en fejl. Men den ligger i det downloadede.

Jeg har udskiftet <%=TableWidth%> med tal (menuens bredde), så det ikke afføder en fejl.
Avatar billede htm Nybegynder
02. marts 2004 - 19:40 #20
Godt du fik løst det.

Syntes du skal kigge på dette ekesmpel, på hvordan du placerer det i en tabel: http://www.dhtmlcentral.com/projects/coolmenus/examples/table_placement3.html

Kan oplyse at i mozilla og opera popper menuen lidt den anden vej, så der er et lille gråt mellemrum lige før menuen.
Avatar billede steen_hansen Forsker
02. marts 2004 - 19:46 #21
Det, som der reelt står er, at jeg skal lave en tabel, sørge for at lukke alle <p>-tags m.m. og placere en transparent GIF inde i cellen

<td><img src="...." height="xx" width="yyy"></td>

med menuens mål, så jeg er sikker på, at størrelsen er korrekt? Derefter skal jeg placere koden til menunen umiddelbart efter tabellen?
Avatar billede steen_hansen Forsker
02. marts 2004 - 19:48 #22
Jeg leger lidt med det og vender tilbage, htm
Avatar billede htm Nybegynder
02. marts 2004 - 19:51 #23
Nemlig det er filosofien i det.

Placer dette inde i din tabel.

<div id="divMenu">
    <img src="images/cm_fill.gif" width="140" height="322" alt="" border="0" />
</div>

Tilpas størrelsen på den.

Så placerer du det script der danner menuen nederst i dokumentet (nemest) og så så sørger du får at få den kode der hedder
//Extra code to find position:
med - og så skulle den gerne placerer sig.

Jeg har i hvert fald haft stor succes med det
Avatar billede steen_hansen Forsker
02. marts 2004 - 19:52 #24
Når du siger nederst, så mener du efter </html>?
Avatar billede htm Nybegynder
02. marts 2004 - 19:54 #25
Nej efter din tabel - før </body>
Avatar billede steen_hansen Forsker
02. marts 2004 - 19:57 #26
Ok. Jeg prøver, når jeg har set DVB :o)
Avatar billede steen_hansen Forsker
02. marts 2004 - 20:45 #27
//Extra code to find position:

Hvor ser du den stump kode, og hvor skal den sættes ind?
Avatar billede htm Nybegynder
02. marts 2004 - 20:53 #28
Højreklik i det ekesmpel jeg gav dig link til - der står det efter oCMenu.construct() i linie 187.

Der skal du have hele koden med.
Avatar billede steen_hansen Forsker
02. marts 2004 - 20:59 #29
Ok. Det er sat ind, men har ikke hjulpet. Skal jeg maile dokumenterne?

Jeg skal lige sige, at den transparente GIF skulle åbenbart bare bruges til at sikre højden på de 22 px i cellen. Længden skulle være ligemeget, så jeg har kortet den ned.
Avatar billede htm Nybegynder
02. marts 2004 - 21:34 #30
Det eks. jeg linkede til var lidt mere avanceret end jeg lige have set - det forsøger at placere hvert element i hver deres td. - brug denne i stedet: http://www.dhtmlcentral.com/projects/coolmenus/examples/table_placement2.html


Og så syntes jeg dine tabeller er lidt vildt bygget op. umiddelbart syntes jeg ikke du har brug for alle dem.

Prøv også at udkommenter linien
oCMenu.construct()

og tjek hvor billedet har lagt sig.
Avatar billede steen_hansen Forsker
02. marts 2004 - 21:46 #31
Mht. mine vilde tabeller, så skal jeg have mere styr på padding m.m. i CSS. Det må komme senere.

Kigger på det, som du har lagt her.
Avatar billede steen_hansen Forsker
02. marts 2004 - 21:58 #32
Inden jeg går i gang, gider du så at kigge på siden igen?

Jeg har lagt en hvid GIF ind yderst til venstre for at indikere, hvor billedet befinder sig. Er det ok?
Avatar billede htm Nybegynder
02. marts 2004 - 22:00 #33
Det er ok - men for din egen skyld er det en god ide at lave den støre - så er det nemmere at se hvis menuen på et tidspunkt fejler...
Avatar billede steen_hansen Forsker
02. marts 2004 - 22:01 #34
Det er så meningen, at menuen skal ramme venstre kant, og så burde det ekstra script (//Extra code to find position:) burde "fange" den. Er det rigtigt forstået?
Avatar billede htm Nybegynder
02. marts 2004 - 22:02 #35
ja
Avatar billede steen_hansen Forsker
02. marts 2004 - 22:05 #36
Ok, så laver jeg den transparente GIF i hele menuens størrelse. Dvs.:

(6 menupunkter x 123px) + (7 mellemrum x 1px) = Bredde = 745/Højde = 22

Det må være størrelsen.
Avatar billede steen_hansen Forsker
02. marts 2004 - 22:12 #37
Ok, nu er menuen nøjagtigt ud for den transparente GIF, som har størrelsen 745 x 22 pixels.

Som du kan se, er mellemrum mellem menu og "papiret" blevet forskubbet.

Var det meningen med det første forslag, at den burde "falde på plads" nu?
Avatar billede steen_hansen Forsker
02. marts 2004 - 22:17 #38
Jeg mente, at menuen og den transparente GIF nøjagtigt er på linie med hinanden, men menuen er stadig for langt til venstre.

Det første forslag virker åbenbart ikke. Derfor bør jeg så prøve forslag nr. 2 nu?
Avatar billede steen_hansen Forsker
02. marts 2004 - 22:39 #39
Hm, der er jo mere i forslag 1, som du siger. Alle menupunkterne skal lægges ind i TD's. Jeg prøver igen ... :o)
Avatar billede steen_hansen Forsker
02. marts 2004 - 22:42 #40
Jeg går lige i selvsving :o)

SKAL jeg f.eks. benytte cm_fill (1 x 22 pixels), eller kan jeg omdøbe den til noget andet?
Avatar billede steen_hansen Forsker
02. marts 2004 - 23:26 #41
Jeg har prøvet med /banner.asp - men det går galt et eller andet sted :/
Avatar billede steen_hansen Forsker
02. marts 2004 - 23:35 #42
/includes/banner1.asp
Avatar billede steen_hansen Forsker
02. marts 2004 - 23:50 #43
Jeg tror sq den er der, men nu åbner undermenuerne ikke ud til højre, men nedad?
Avatar billede steen_hansen Forsker
03. marts 2004 - 00:16 #44
Hm, man skal heller ikke trykke på menuen for at åbne den, nu skal man bare holde musen hen over :/
Avatar billede steen_hansen Forsker
03. marts 2004 - 08:13 #45
htm, der er for mange begrænsninger og for mange besværligheder, hvis man skal overholde W3C's standarder.

Hovedformålet er også, at siden ses ordentligt i MSIE, og jeg vil tro, at det kan lade sig gøre fra - ihvertfald - version 5.0? Det var mit udgangspunkt, at siden bare skulle kunne ses i MSIE, så jeg tror jeg dropper alt det andet.

Kan du ikke lægge et svar? Det har været lærerigt, men en del besværligt :o)
Avatar billede steen_hansen Forsker
03. marts 2004 - 12:38 #46
Hvorfor står teksten over midten nu (horisontalt)? Den skulle stå i midten :o)
Avatar billede htm Nybegynder
03. marts 2004 - 21:03 #47
Nej tak - skal ikke have point - har ikke bidraget med noget godt der løste problemet.

Jeg ved faktisk ikke hvorfor det står lidt over midten, og har desværre ikke tid til at kigge på det nu.
Avatar billede steen_hansen Forsker
03. marts 2004 - 21:13 #48
Jo, du har brugt masser af tid, og du kom da med noget brugbart. At jeg bestemmer mig for at springe over, hvor gærdet er lavest, er en anden sag. Læg så lige det svar! :o)
Avatar billede steen_hansen Forsker
03. marts 2004 - 21:15 #49
Jeg er forøvrigt begyndt at skippe nogle af tabellerne, og benytter mere padding. Du havde ret: Det var voldsomt, så mange tabeller, der var brugt.
Avatar billede htm Nybegynder
03. marts 2004 - 21:16 #50
hmm ok så - men så kun fordi det er dig :-)
Avatar billede steen_hansen Forsker
03. marts 2004 - 21:18 #51
Bedste ven :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester