Avatar billede Weibrecht Nybegynder
25. september 2009 - 23:16 Der er 7 kommentarer

Ændring af menupunkter

Hej.

Jeg vil gerne lave en top-menu ligesom nedenstående eksempel:

http://digitalmash.com/

Altså en menu hvor hvert menupunkt skifter når man hover, og forbliver sådan hvis man går ind under menupunktet. Samtidig skal det punkt så blive "normalt" igen når man forlader den pågældende undermenu.

Menuen skal også helst laves af billeder ikke som en liste.

Jeg er usikker på om dette kan laves vha. html og css, eller vi er ude i noget JavaScipt?

På forhånd tak!
Avatar billede Slettet bruger
25. september 2009 - 23:46 #1
Det kan sagtens gøres med css.
Du bruger pseudo-klassen :hover til at ændre elementerne når brugeren fører musen hen over dem.
Et eksempel:

<style type="text/css">
#menuForside {
    background-image: url('images/forside.jpg');
    width: 100px;
    height: 50px;
}
#menuForside:hover {
    background-image: url('images/forsideHover.jpg');
}
</style>

<div id="menuForside">
</div>

Div'en er 100 pixel høj og 50 pixel bred. Den har billedet images/forside.jpg som baggrund når musen ikke er over den, og images/forsideHover.jpg når musen er over den.

Det andet problem løses blot med at sætte baggrunden på det valgte menupunkt til hover versionen af billedet hele tiden, altså:

<style type="text/css">
#menuForside {
    background-image: url('images/forsideHover.jpg');
    width: 100px;
    height: 50px;
}
</style>

<div id="menuForside">
</div>
Avatar billede Weibrecht Nybegynder
26. september 2009 - 00:12 #2
Hmm..umiddelbart virker det ikke lige. Hvad hvis billederne ikke har samme størrelse?
Avatar billede Slettet bruger
26. september 2009 - 12:51 #3
Det sørger du selvfølgelig for at de har :)
Her kommer et lille eksempel hvor det i hvert fald virker:
http://jacobbundgaard.dk/misc/eksperten/mouseover.html

Bemærk dog at billederne ikke loades på forhånd, og at der derfor vil være en lille forsinkelse den første gang brugeren holder musen over dem hvis brugeren sidder på en langsom internetforbindelse, eller hvis billederne er alt for store.
Dette kan godt undgås med Javascript, men de fleste vil foretrække en ren CSS løsning.
Avatar billede olebole Juniormester
26. september 2009 - 14:32 #4
<ole>

kimsey0 >> Eksemplet virker ikke i IE6 og IE7, så det er nok ikke hensigtsmæssigt  =)

Jeg anerkender helt klart, at det langtfra er utænkeligt, at 'de fleste vil foretrække en ren CSS løsning' ... det gælder dog ikke W3C! Da hover seneste var oppe til diskussion, endte man med fortsat at lade hover leve indenfor CSS - men udelukkende af hensyn til bagudkompatibilitet.

Man havde allerede set teksten på væggen - og var på baggrund af iagttagelser af kodevaner rundt om på WWW godt klar over, at hover lægger op til uønsket brug af CSS. Derfor var der meget stærke røster fremme, der opfordrede til at afskaffe hover - men den fik som sagt lov at overleve  =)

Meningen med W3C's arbejde er jo bl.a, at vi skal opdele i data (f.eks. XML), opmærkning (HTML), præsentation (CSS) og funktion (script). Problemet i dén forbindelse, at alt for mange funktionaliteter forsøges løst med CSS, hvor det rettelig burde løses med script.

Jeg - og andre, der forsøger at kode i overensstemmelse med tankerne bag reglerne - foretrækker derfor en script løsning fremfor en CSS løsning  ;o)

/mvh
</bole>
Avatar billede Weibrecht Nybegynder
26. september 2009 - 14:56 #5
Har sjovt nok også problemer med at få det til at virke. Har du et eksempel på en script-løsning?
Avatar billede Slettet bruger
26. september 2009 - 16:45 #6
olebole >> Som du selv siger bør man opdele siden i data, opmærkning præsentation og funktion, og jeg vil da mene at visning af menupunkter er præsentation og ikke funktion, og at det derfor bør løses, så vidt muligt med CSS.

Weilbrecht, jeg havde ikke lige noget på lager så jeg har bare hurtigt skrevet et:
http://jacobbundgaard.dk/misc/eksperten/mouseover.html

Jeg er ikke sikker på om alt er skrevet som det burde ifølge W3C, men jeg ved at olebole vil fortælle mig det.
Avatar billede olebole Juniormester
26. september 2009 - 23:20 #7
Der er jeg nok mere på linje med største delen af W3C og mener, at ændringer i sidens udseende - på baggrund af specifikke brugerhandlinger - hører under funktionalitet. Helt galt går det, når man begynder at folde menuer ind og ud med hover
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