Avatar billede gedekid Nybegynder
12. oktober 2006 - 10:48 Der er 4 kommentarer og
1 løsning

ul problem ie

Hej eksperter,

jeg sidder med et pi*** irriterende problem med Internet Explorer kontra Firefox. Jeg har på et nyt site lavet en submenu, bestående af ul og li

niveau 1 ser således ud:

<ul>
    <li>Punkt1</li>
    <li>Punkt2</li>
    <li>Punkt3</li>
    <li>Punkt4</li>
    <li>Punkt5</li>
</ul>

og til det er der en CSS styling der fungerer fint:

.subMenu ul li a {
    display: block;
    background-color: #dbe4e4;
    padding: 3px 0px 4px 15px;
    background-image: url(/dfi/fileadmin/gfx/bg-sub-no.jpg);
    border-bottom: 1px solid #ffffff;
    color: #000000;
    text-decoration: none;
}

.subMenu ul li a:hover {
    display: block;
    background-color: #b4c4c4;
    padding: 3px 0px 4px 15px;
    background-image: url(/dfi/fileadmin/gfx/bg-sub-hover.jpg);
    border-bottom: 1px solid #ffffff;
    text-decoration: none;
}

.subMenu ul li.active a {
    background-image: url(/dfi/fileadmin/gfx/bg-sub-hover.jpg);
    font-weight: bold;
    color: #ffffff;
}

Altså således at der kommer en anden styling på det aktive menupunkt, end de normale.

Virker perfekt i begge browsere.

Niveau 2 ser således ud:

<ul>
    <li>Punkt1</li>
    <li>Punkt2</li>
    <li>Punkt3</li>
    <li class="active">(aktiv) Punkt4</li>
    <ul>
        <li>Subpunkt 1</li>
        <li class="activeSub">(aktiv) subpunkt2</li>
        <li>Subpunkt 3</li>
    </ul>
    <li></li>
</ul>

og til det en anden styling..

.subMenu ul ul li a:link {
    display: block;
    background-color: #dbe4e4;
    padding: 3px 0px 4px 35px;
    background-image: url(/dfi/fileadmin/gfx/bg-sub-no.jpg);
    border-bottom: 1px solid #ffffff;
    color: #000000;
    text-decoration: none;
    font-size: 10px;
    font-weight: normal;
}

.subMenu ul ul li a:visited {
    display: block;
    background-color: #dbe4e4;
    padding: 3px 0px 4px 35px;
    background-image: url(/dfi/fileadmin/gfx/bg-sub-no.jpg);
    border-bottom: 1px solid #ffffff;
    color: #000000;
    text-decoration: none;
    font-size: 10px;
    font-weight: normal;
}

.subMenu ul ul li.activeSub a {
    display: block;
    background-color: #dbe4e4;
    padding: 3px 0px 4px 35px;
    background-image: url(/dfi/fileadmin/gfx/bg-sub-hover.jpg);
    border-bottom: 1px solid #ffffff;
    color: #ffffff;
    text-decoration: none;
    font-size: 10px;
    font-weight: bold;
}


.subMenu ul ul li a:hover {
    display: block;
    background-color: #dbe4e4;
    padding: 3px 0px 4px 35px;
    background-image: url(/dfi/fileadmin/gfx/bg-sub-hover.jpg);
    border-bottom: 1px solid #ffffff;
    text-decoration: none;
    font-size: 10px;
}

Virker perfekt i Firefox men i IE sker der ikke noget med det aktive link.

Er det min CSS den er galt med eller er det bare min væmmelse for IE der er begrundet?
Avatar billede sw_red_6 Nybegynder
12. oktober 2006 - 10:52 #1
det er vidst kun muligt at lave hover på <a>-tags i IE og det er der vidst ikke i den liste
Avatar billede gedekid Nybegynder
12. oktober 2006 - 11:10 #2
Der er hover på a tags :)

.subMenu ul ul li a:hover {
    display: block;
    background-color: #dbe4e4;
    padding: 3px 0px 4px 35px;
    background-image: url(/dfi/fileadmin/gfx/bg-sub-hover.jpg);
    border-bottom: 1px solid #ffffff;
    text-decoration: none;
    font-size: 10px;
}


Men jeg fik det løst selv... Slettede ul'en på niveau2 og oprettede en subLevel2 class til den nye li og lavede så en styling til den samt activeSub klassen.. så funker det... Men en træls omvej...
Avatar billede olebole Juniormester
12. oktober 2006 - 13:49 #3
<ole>

Problemet er din invalide markup-kode, som IE væmmer sig ved - men som FF godtager, fordi den er så eftergivende og på mange punkter accepterer, hvad somhelst  :)

Et ul-element kan aldrig have et ul-element som 'barn' ... kun li-elementer kan være 'barn' af et ul-element. I en browser, der overholder gængse standarder vil din kode altid skabe problemer  ;o)

/mvh
</bole>
Avatar billede gedekid Nybegynder
13. oktober 2006 - 08:21 #4
olebole - det var faktisk også det jeg selv tænkte på.. Så jeg slettede som nævnt ul-child'en og så funkede det fint... :)

Men jeg har faktisk prøvet at sidde med en kode som W3 validator'en siger top-dollar for og hvor siden ser perfekt ud i FF men ikke IE... Så jeg ved ikke hvilken af de 2 der er synderen...
Avatar billede olebole Juniormester
16. oktober 2006 - 09:08 #5
Visuelle fejl er oftest koderens eller IE's skyld. FF har bunker af fejl, men det er de færreste, der resulterer i visuelle fejl.
Derudover behøver en kode absolut ikke være god, bare fordi den validerer. Valid kode behøver ikke være god - men god kode er altid valid  ;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