Avatar billede Slettet bruger
17. januar 2012 - 17:17 Der er 34 kommentarer og
1 løsning

HTML/CSS drop down menu virker ikke.

Jeg er ved at uddanne mig til multimediedesigner, og har lige lavet et portfolio om mig selv: http://web330.webkn.dk/portfolio/home.html
Som i kan se virker min drop down menu ikke optimalt (jeg bruger IE - men den virker ikke i nogle browsere)

Min html ser således ud:
<!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=utf-8" />
<title>Portfolio - Home</title>
<link href="home.css" rel="stylesheet" type="text/css" />
</head><!--header-->

<body>

        <div id="mig"><img src="billeder/mig.jpg" alt="mig"/></div><!--mig-->
        <div id="hjerte"><img src="billeder/hjerte.jpg" alt="hjerte"/></div>                <!--hjerte-->

<div id="master">
   
        <div id="banner"><a href="home.html"><img src="billeder/banner.png"                 alt="banner" width="800" height="96" border="0" /></a></div><!--banner-->
       
       
        <div id="menu">
        <ul id="ddmenu">
            <li><a href="home.html" id="selected">Home</a></li>
           
            <li><a href="semestre.html" id="menu2">Semestre</a>
                <ul>
                    <li><a href="1semester.html" class="umenu">1. semester</a></li>
                      <li><a href="2semester.html" class="umenu">2. semester</a></li>
                    <li><a href="3semester.html" class="umenu">3. semester</a></li>
                    <li><a href="4semester.html" class="umenu">4. semester</a></li>
                    <li><a href="laering.html" class="umenu">Læring</a></li>
                </ul>
            </li>
            <li><a href="egnevaerker.html" id="menu3">Egne værker</a>
                <ul>
                    <li><a href="optagelsesproeve.html" class="umenu">                                                Optagelsesprøve</a></li>
                    <li><a href="corelpaintshop.html" class="umenu">Corel Paint                             Shop</a></li>
                    <li><a href="logogolftoej.html" class="umenu">Logo golftøj</a>                        </li>
                    <li><a href="logostudietoej.html" class="umenu">Logo studietøj                        </a></li>
                    <li><a href="tattoos.html" class="umenu">Tattoos</a></li>
                </ul>
            </li>
              <li><a href="ommig.html" id="menu4">Om mig</a>
                <ul>
                    <li><a href="uddannelse.html" class="umenu">Uddannelse</a></li>
                    <li><a href="kompetencer.html" class="umenu">Kompetencer</a>
                    </li>
                </ul>
            </li>
            <li><a href="kontakt.html" id="menu5">Kontakt</a></li>
        </ul><!--ddmenu-->
        </div><!--menu-->


<div id="content">

        <div id="boks">
        <div id="scrollbar">       
            <div id="forsidetekst"><p><h2>Hej, og velkommen til min                                               portfolio!</h2> Dette website er lavet for at du kan følge min                             udvikling gennem uddannelsen som multimediedesigner.</p><p>I min                         portfolio kan du finde værker, som jeg har lavet før jeg begyndte på                 skolen, og værker som jeg har lavet under uddannelsen. Udover det kan                 du læse om mig som person, og hvilke kompetencer jeg har. Kig                         blot i menuen, og se hvad du finder. Rigtig god fornøjelse!</p>
            </div><!--forsidetekst-->
           
            <div id="home1"><img src="billeder/home1.png" alt="home1"/></div>                                <!--home--> 
                     
            <div id="home6"><img src="billeder/home6.png" alt="home6" width="340"                 height="350" border="0" /></div><!--home6--> 
                     
        </div><!--scrollbar-->
        </div><!--boks-->
       
       

</div><!--content-->
</div><!--master-->
</body><!--body-->
</html><!--html-->


Min css ser således ud:
@charset "utf-8";
/* CSS Document */

body    {
    background-color: #000000;
    }
   
#mig    {
    position: absolute;
    top: -95px;
    left: -10px;
    }
   
#hjerte    {
    position: absolute;
    margin: 0 0 0 1220px;
    }

#master    {
    height: 750px;
    width: 1000px;
    margin-right: auto;
    margin-left: auto;
    padding: 0;
    background-color: transparent;
    }
   
#banner    {
    height: 96px;
    width: 800px;
    position: absolute;
    margin: 0 100px 0 100px;
    padding: 0;
    }

#ddmenu    {
    margin: 100px 100px 0 100px;
    text-align: center;
    font-family: calibri, arial, sans-serif;
    font-size: 17px;
    width: 800px;
    padding: 0;
    height: 30px;
    position: absolute;
    }

#ddmenu, #ddmenu ul    {
    list-style: none;
    }

#ddmenu > li    {
    display: inline-block;
    }

#ddmenu li a    {
    display: block;
    display: table-cell;
    vertical-align: middle;
    }

#ddmenu ul    {
    display: none;
    z-index: 999;
    padding: 0;
    position: absolute;
    }

#ddmenu ul li a, #ddmenu a:visited    {
    color: #FFFFFF;
    text-align: left;
    padding-left: 5px;
    text-decoration: none;
    }
   
#ddmenu a    {
    color: #FFFFFF;
    }

#ddmenu li:hover ul    {
    padding-left: 20px;
    display: block;
    }

#menu1,#menu2,#menu3,#menu4,#menu5    {
    height: 35px;
    width: 156px;
    border-radius: 10px 10px 10px 10px;
    background-color: #666666;
    list-style: none;
    text-decoration: none;
    }

#selected {
    height: 35px;
    width: 156px;
    border-radius: 10px 10px 10px 10px;
    background-color: #999999;
    list-style: none;
    }

#menu1:hover,#menu2:hover,#menu3:hover,#menu4:hover,#menu5:hover    {
    background-color: #999999;
    }

.umenu:hover    {
    background-color: #999999;
    }

.umenu{
    background-color: #666666;
    height: 20px;
    width: 115px;
    font-size: 16px;
    }
   
#content    {
    margin: 0;
    padding: 0;
    position: absolute;
    height: 600px;
    width: 1000px;
    top: 130px;
    }
   
#scrollbar    { 
    height: 550px;
    width: 800px;
    overflow: auto;
    margin: 22px 0 0 0;
    }
   
#boks    {
    position: absolute;
    margin: 20px 100px 0 100px;
    padding: 0 0 0 0;
    height: 595px;
    width: 800px;
    background-color: #666666;
    border-top-left-radius: 15px;
    border-top-right-radius: 15px;
    border-bottom-left-radius: 15px;
    border-bottom-right-radius: 15px;
    }
   
#forsidetekst    {
    font-size: 16px;
    font-family: calibri, arial, sans-serif;
    margin: 30px 310px 0 70px;
    color: #FFFFFF;
    }
   
#home1    {
    position: absolute;
    margin: -269px 0 0 0;
        }
       
#home6    {
    margin: -25px 0 0 320px;
    position: absolute;
    }
Avatar billede Pkallesoe Nybegynder
17. januar 2012 - 17:26 #1
hvordan skal den da  virke? ;)
Avatar billede Slettet bruger
17. januar 2012 - 17:32 #2
Drop down menuen forsvinder når man kører musen ned over (så man kan ikke nå at trykke. Se linket: http://web330.webkn.dk/portfolio/home.html
Avatar billede olebole Juniormester
17. januar 2012 - 17:41 #3
<ole>

Jeg kan umiddelbart se, at din kode fejler i Opera og IE9, når jeg sætter den i kompatibilitets mode. Det skyldes bl.a. border-radius, som jo kun understøttes af allerseneste version af IE.

Denne regel undrer mig også:

#ddmenu li a {
    display : block;
    display : table-cell;
    vertical-align : middle;
}

Hvorfor to angivelser af display - og hvad skal den resultere i i de forskellige browsere?

Jeg har ikke gået koden efter med tættekam, men det undrer mig, du bruger position:absolute så meget. Det er somregel at sætte vand over til problemer  =)

Derudover har du en HTML-fejl i denne linje:

<div id="forsidetekst"><p><h2>Hej, og velkommen til min portfolio!</h2>

Det er ikke årsag til fejlen, men bør absolut rettes. Et H* element kan aldrig ligge i et P element.

/mvh
</bole>
Avatar billede olebole Juniormester
17. januar 2012 - 17:43 #4
At menuen forsvinder, når man vil klikke, er vel det mindste problem - specielt for en designer! Den ligner absolut ikke noget, der er meningen i IE under version 9 - og heller ikke i Opera
Avatar billede claes57 Ekspert
17. januar 2012 - 17:55 #5
menuerne er meget sjove... hvis man i chrome/ie rykker hurtigt ned med cursor, så virker de - men hvis man er for langsom, så er det væk.
Gider ikke de gamle/tunge brugere - dette er stedet for de unge/rappe folk. ;)
Avatar billede claes57 Ekspert
17. januar 2012 - 17:59 #6
det ligger i, at når cursor kommer ned i området med runding, så taber den 'adressen' - fjern borderradius, og jeg tror den virker.
Avatar billede Slettet bruger
17. januar 2012 - 17:59 #7
Jeg har nu fjernet <b>display: block;</b> og rettet h* elementet.
Grunden til at jeg har så meget position: absolute; er fordi at billeder + menu skal ligge øverst.

Men jeg forstår ikke hvorfor du siger at det er det mindste problem? Det er jo yderst vigtigt at man skal kunne klikke sig ind i underpunkterne.
Avatar billede Slettet bruger
17. januar 2012 - 18:01 #8
Ja, det gælder om at være hurtig.. Okay, tak - jeg prøver at fjerne border-radius, bare ærgeligt når det er en del af designet.
Avatar billede olebole Juniormester
17. januar 2012 - 18:07 #9
"Grunden til at jeg har så meget position: absolute; er fordi at billeder + menu skal ligge øverst." >> Så er det en skidt løsning.

I stedet bør du bruge position:relative (og undgå at give elementerne left og top værdier) - og udnytte det naturlige sideflow.

border-radius er ikke del af nogen gældende standard, så den kan ikke forventes at virke - og slet ikke i bare lidt ældre browsere. Det 'ærgelige' er, at designet bygger på features, som ikke kan forventes er understøttet  *o)
Avatar billede Slettet bruger
17. januar 2012 - 18:15 #10
Det virker heller ikke hvis man fjerner border-radius :(
Avatar billede olebole Juniormester
17. januar 2012 - 18:22 #11
Grunden til, menuerne forsvinder, er, at dine links ikke fylder hele højden af LI elementerne. Læg din :hover på LI elementerne i stedet.

Men du bør absolut få rettet resten af uhensigtsmæssighederne. Ikke mindst vil din brug af position:absolute på sigt resultere i masser af bøvl
Avatar billede olebole Juniormester
17. januar 2012 - 18:27 #12
position:absolute bør med ganske få undtagelser kun anvendes indenfor elementer, der har fået position:relative. Når man endelig bruger absolute, gøres det altså for at placere et element i forhold til et andet element, som i øvrigt følger det naturlige sideflow.

Du kunne således få dine blomster til at følge browseren, når den resizes (og det er vel meningen) med denne kode:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body style="background:#000;color:#fff">

<div style="position:relative;width:500px;margin:30px auto 0;border:1px solid red">
    <p>blabla ... en hel masse indhold</p>
    <p>- og noget mere af samme skuffe</p>
    <img style="position:absolute;top:0;right:-400px" alt=""
        src="http://web330.webkn.dk/portfolio/billeder/hjerte.jpg">
</div>

</body>
</html>

- og al CSS bør naturligvis lægges i et stylesheet. Det er kun skrevet inline for overskuelighedens skyld  =)
Avatar billede olebole Juniormester
17. januar 2012 - 18:30 #13
- og nu er jeg zq snart træt af at danse poko med E's URL-parser!  :o|

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body style="background:#000;color:#fff">

<div style="position:relative;width:500px;margin:30px auto 0;border:1px solid red">
    <p>blabla ... en hel masse indhold</p>
    <p>- og noget mere af samme skuffe</p>
    <img style="position:absolute;top:0;right:-400px" alt=""
        src="http://web330.webkn.dk/portfolio/billeder/hjerte.jpg">
</div>

</body>
</html>
Avatar billede Slettet bruger
17. januar 2012 - 18:44 #14
"Grunden til, menuerne forsvinder, er, at dine links ikke fylder hele højden af LI elementerne. Læg din :hover på LI elementerne i stedet." --> Forstår jeg ikke (er kun et halvt år inde i uddannelsen)

Skal nok prøve at få rettet position: absolute.

Den kode du har sat ind til sidst, hvor siger du den skal ind?? Ja, du må undskylde jeg ikke er helt skarp, gør det så godt jeg kan ;)
Avatar billede olebole Juniormester
17. januar 2012 - 19:04 #15
Den kode, jeg viste, skal ikke ind nogen steder. Det var et eksempel på en fremgangsmåde.
Avatar billede Slettet bruger
17. januar 2012 - 19:06 #16
Okay, men tak for hjælpen i så fald (:
Avatar billede olebole Juniormester
17. januar 2012 - 19:18 #17
Prøv den og læs, hvad jeg har skrevet. Så vil du garanteret forstå, hvad der sker, når jeg lige ridser reglerne for absolut positionering op for dig:

*) Et abslout positioneret element placerer sig i forhold til det første, omkransende element, som er positioneret (absolute eller relative er ligemeget).

*) Findes et sådan ikke, vil elementet placere sig i forhold til BODY elementet

Altså vil billedet følge 'wrapperen', som jo er positioneret relative
Avatar billede Slettet bruger
17. januar 2012 - 19:32 #18
Ja, jeg er klar over at jeg skal have flyttet rundt på en del, og slettet mange absolute positioner - men det løser stadig ikke mit problem med menuen :)
Avatar billede olebole Juniormester
17. januar 2012 - 19:48 #19
Nu har du jo lige fortalt mig, du kun er et halvt år inde i din uddannelse, så hvad der løser dit problem, må du vente med at fortælle mig, til du har prøvet  *o)
Avatar billede rqen Nybegynder
17. januar 2012 - 20:02 #20
Prøv at opdatere disse:

#ddmenu > li {
float: left;
margin-left: 4px;
}

#ddmenu ul li a, #ddmenu a:visited {
color: white;
text-align: left;
margin-left: 5px;
text-decoration: none;
position: relative;
}

#ddmenu ul {
display: none;
z-index: 999;
padding: 0;
position: absolute;
top: 30px;
padding-top: 5px;
}
Avatar billede Slettet bruger
17. januar 2012 - 20:33 #21
Hej rqen :)
DET VIRKER :D tusind tak for hjælpen! :)
Nu kan jeg trygt gå til eksamen på tirsdag!
Tusind tak for hjælpen!
Avatar billede rqen Nybegynder
17. januar 2012 - 20:36 #22
Det var så lidt :)

Pøj pøj med eksamen :)
Avatar billede Slettet bruger
17. januar 2012 - 20:38 #23
Tusind tak! :)
Avatar billede Slettet bruger
17. januar 2012 - 20:44 #24
okay, der er ét lille bitte problem.. hele menuen rykker sig lige en smule til højre. Kan man undgå det?
Avatar billede olebole Juniormester
17. januar 2012 - 21:08 #25
float skal man ligesom med absolute være ret forsigtig med. Begge hiver elementet ud af det naturlige sideflow og skaber ofte andet bøvl.

Nu skal jeg ikke være censor på tirsdag, men havde du været en af mine elever - eller en, jeg var censor for - ville du meget let kunne løbe ind i forklaringsproblemer. Faktisk var display:inline-block på LI elementerne noget af det i din kode, som kunne være grund til ros
Avatar billede rqen Nybegynder
17. januar 2012 - 23:18 #26
Jeg er enig med olebole, og det var måske også forkert af mig at lave den del om, når nu der også bliver brugt border-radius.

Men jeg kan umiddelbart ikke se at menuen rykker sig en smule.. Har du opdateret den side der er online ?
Så vil jeg prøve at rette op på det :)
Avatar billede Slettet bruger
18. januar 2012 - 10:29 #27
Olebole; jeg skal ikke vise hverken html eller css, så ligenu er det bare vigtigt at det virker til min eksamen - jeg skal nok få rettet det hen af vejen, men ligenu må du være indforstået med at det bare skal virke - skal nok følge jeres gode råd når jeg skal rette det igen :)

rqen; Nej, jeg har ikke lagt den online - jeg ligger home siden online, så kan du se forskellen fra de andre sider. Og tusind tak :)
Avatar billede olebole Juniormester
18. januar 2012 - 14:32 #28
Min manglende forståelse bunder nok i, jeg ikke forstod, hvad det er for en eksamen, du skal op til. Nu har jeg dog endelig styr på, det ikke har noget med webdesign at gøre - sorry  =)
Avatar billede rqen Nybegynder
18. januar 2012 - 17:52 #29
Vi laver den ene klasse om til det du havde i første omgang, og som olebole også foreslår:

#ddmenu > li {
display: inline-block;
}

hvis menupunkterne stadig står lidt "off" så tager jeg gerne et ekstra kig :)
Avatar billede Slettet bruger
18. januar 2012 - 21:51 #30
olebole: Det er bare en eksamen der afslutter 1. semester, som vurderer om jeg kan komme videre i mit forløb som multimediedesigner. Så jo, det har også noget med webdesign at gøre :)

rqen: Tusind tusind tak - det virker nu helt korrekt! Du har reddet mig, tusind tak! :)
Avatar billede Slettet bruger
18. januar 2012 - 22:10 #31
rqen: okay, det er en meget lille detalje.. Det er, nede i drop down menuen er teksten selvfølgelig alignet i venstre, men - jeg kunne måske godt tænke mig at den kom ind i midten (var den før vi rettede på det) - stadig med fast venstre margen - det ser nemlig lidt bedre ud, så teksten ikke er helt ude i kanten :) Du har været til kæmpe hjælp, så det er helt iorden hvis du snart ikke gider mere ;)
Avatar billede rqen Nybegynder
18. januar 2012 - 23:23 #32
En løsning kunne være følgende:

#ddmenu li ul li {
    text-align: center;
    padding: 0px 5px;
}

din tekst bliver centreret og med padding så teksten ikke kommer så tæt på kanten, ellers så bare fjern padding igen. Lad mig høre om det er løsningen? :)
Avatar billede Slettet bruger
19. januar 2012 - 10:13 #33
Ingen af tingene virker desværre - hverken med eller uden padding :(
Avatar billede rqen Nybegynder
19. januar 2012 - 17:18 #34
Prøv denne :)

#ddmenu li ul li a {
    text-align: center;
}
Avatar billede Slettet bruger
22. januar 2012 - 17:05 #35
Undskyld det sene svar :)
Men nej - det virker desværre ikke, så bliver teksten nemlig bare centreret, og har ikke fast margen i venstre :)
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