Avatar billede saucer Nybegynder
08. september 2005 - 12:14 Der er 13 kommentarer og
1 løsning

Sjov fejl ved brug af overflow:auto;

Hej jeg sider og er ved at opdatere en dropdown menu. Menuen fungere fint i IE (desvære fungere det meste i IE :( ). Men når jeg ser siden i FF er det et lille bug.

En demo af vores kode.

<tabel>
<tr>
  <td> vores menu udskrives her </td>
</tr>
  <td> <div style="overflow:auto;width:100px;height:100px;"> Sidens tekst</div> </td>
</tr>
</table>

Problemmet er så når menuen folder sig ned over den div med overflow:auto så kan jeg ikke klikke på menu links der er over den. Selve menuen klapper bare sammen igen.

Jeg har prøvet at rette oveflow:none; og så virker det fint. men så kommer teksten ikke til at passe sammen med layout så det skal være overflow:auto.

Er der nogen her inde der har haft den samme problem eller ved i hvordan man kan løse denne bug ?
Avatar billede olebole Juniormester
08. september 2005 - 12:24 #1
<ole>

Prøv med et link, så vi kan se fejlen

/mvh
</bole>
Avatar billede roenving Novice
08. september 2005 - 12:36 #2
Er det en tavetosse her, eller mangler du også i virkeligheden det andet <tr>-tag ?-)
Avatar billede saucer Nybegynder
08. september 2005 - 13:56 #3
roenving >> Det var bare en kode eks. Og ja nu kan jeg godt se at jeg har glemt et par tag her og der, men denne kode skal ikke bruges til noget..

linket er her : http://ps-xmastree.dk/
Avatar billede olebole Juniormester
08. september 2005 - 14:23 #4
- og hvor skulle problemet opstå?
Avatar billede saucer Nybegynder
08. september 2005 - 14:34 #5
olebole >>

Klik ind på : http://ps-xmastree.dk/  (i FF)

Kører musen over et menu punkt eks : "Dyrkning". Så kan du se at der kommer en lang dropdown. Hvis du så vil klikke ned på "KURSER" så lukker menuen sammen lige efter det først 2 links. Altså alle dropdown links der kommer ud over den hvide felt hvor indhold bliver udskrevet kan ikke klikkes på.

Og hvorfor siger jeg så at problemmet er ved overflow:auto; ??

Jo hvis du så prøver at trække musen over Links så kan du fint bruge menuens alle underlink.

Jeg har prøvet at sætte overflow:none;. Når det er aktiveret så kan jeg fint klikke på alle undermenuer. Men så kommer mit tekst ud over selve layout så jeg skal bruge overflow:auto;
Avatar billede saucer Nybegynder
08. september 2005 - 15:00 #6
Hmm Jeg har lige løbet lidt fundt på nettet og er kommet frem til at det er en bug som ikke kan rettes.

Jeg har lige en hurtig eks på en ren XHTML / CSS menu som er 100% valideret og den samme fejl kommer igen, så der er ved ikke noget at gøre ved det. FF kan bare ikke læve den del af koden :(  trist
--------------------------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>

<head>
<title>Suckerfish Dropdowns</title>

<style type="text/css">

body {
    font-family: arial, helvetica, serif;
}

ul { /* all lists */
    padding: 0;
    margin: 0;
    list-style: none;
}

li { /* all list items */
    float: left;
    position: relative;
    width: 10em;
}

li ul { /* second-level lists */
    display: none;
    position: absolute;
    top: 1em;
    left: 0;
}

li>ul { /* to override top and left in browsers other than IE, which will position to the top right of the containing li, rather than bottom left */
    top: auto;
    left: auto;
}

li:hover ul, li.over ul { /* lists nested under hovered list items */
    display: block;
}

#content {
    clear: left;
    width:300px;
    height:200px;
    overflow:auto;
}

</style>

<script type="text/javascript"><!--//--><![CDATA[//><!--
startList = function() {
    if (document.all&&document.getElementById) {
        navRoot = document.getElementById("nav");
        for (i=0; i<navRoot.childNodes.length; i++) {
            node = navRoot.childNodes[i];
            if (node.nodeName=="LI") {
                node.onmouseover=function() {
                    this.className+=" over";
                }
                node.onmouseout=function() {
                    this.className=this.className.replace(" over", "");
                }
            }
        }
    }
}
window.onload=startList;

//--><!]]></script>

</head>

<body>

<ul id="nav">

    <li>Sunfishes
        <ul>
            <li><a href="">Blackbanded sunfish</a></li>
            <li><a href="">Shadow bass</a></li>
            <li><a href="">Ozark bass</a></li>
            <li><a href="">White crappie</a></li>

        </ul>
    </li>

    <li>Grunts
        <ul>
            <li><a href="">Smallmouth grunt</a></li>
            <li><a href="">Burrito</a></li>
            <li><a href="">Pigfish</a></li>

        </ul>
    </li>

    <li>Remoras
        <ul>
            <li><a href="">Whalesucker</a></li>
            <li><a href="">Marlinsucker</a></li>
            <li><a href="">Ceylonese remora</a></li>

            <li><a href="">Spearfish remora</a></li>
            <li><a href="">Slender suckerfish</a></li>
        </ul>
    </li>

</ul>

<div id="content">
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse egestas ultricies pede. Phasellus suscipit blandit risus. Praesent nonummy. In erat. Duis nibh pede, accumsan eu, pulvinar et, volutpat vel, elit. Curabitur nec dui sed nunc congue tempus. Nulla ac dui ac libero fringilla nonummy. Maecenas ullamcorper sodales risus. Vivamus pretium dolor. Proin eu turpis. Phasellus ut mauris non nulla mattis luctus. Nunc porttitor dapibus sapien. In malesuada fermentum metus. Nulla egestas, tellus a vestibulum pharetra, nunc purus auctor lacus, ut semper purus ipsum eu velit. Praesent dui. Nulla accumsan turpis at erat.</p>

</div>

</body>

</html>
Avatar billede olebole Juniormester
08. september 2005 - 15:12 #7
Det er nu kun DTD'en, der har noget med XHTML at gøre. Scriptet kan i hvert fald ikke afvikles under XHTML ... men på den anden side, kan du slet ikke anvende XHTML til noget fornuftigt endnu, så lav du det bare om til HTML4.01.
Det bliver alligevel altid tolket som sådan - og så er der ingen grund til at sætte browseren på unødigt overarbejde  ;o)
Avatar billede olebole Juniormester
08. september 2005 - 15:13 #8
Kan du i øvrigt pege på et link, der omtaler den bug? Jeg har aldrig set den før - og kan ikke forestille mig, hvad årsagen til den skulle være  :)
Avatar billede saucer Nybegynder
08. september 2005 - 15:14 #9
olebole >> Ok, men du har vel ikke en løsning på problemmet ?
Avatar billede olebole Juniormester
08. september 2005 - 15:15 #10
- på hvilket problem?
Avatar billede saucer Nybegynder
08. september 2005 - 15:20 #11
olebole >> På det med overflow ?

Jeg har ikke et linkt om denne problem. Var bare på nettet for at søge om det. Og kunne ikke finde en løsning på det..

men du kan jo selv prøve at kopier denne menu som jeg har uploadet her og teste. Eller også bare lave din helt egen version og så proppe en div men overflow på under menuen så kan du se om du ikke også få den fejl..

Jeg kan heller ikke se hvad årsagen skulle være. Eller jo hvis den div med overflow har i et lag over menuen så kunne man godt forstille sig at den ikke kunne efter at menuen kom bag om den div. Men det er ikke tilfeldet her.
Avatar billede olebole Juniormester
08. september 2005 - 15:31 #12
Det er jeg ikke sikker på - men jeg orker ikke at sidde og fedte med koden  :)

Forskellen mellem IE og FF skyldes formodentlig, at du disabler noget af de vigtigste områder af CSS i din kode. Du _skal_ have en DTD stående som det allerførste i dit dokument ... og det er nødvendigt, den indeholder definitions-URL'en. F.eks. denne:

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

Uden den har du ikke styr på noget somhelst CSS i dokumentet  :)
Avatar billede olebole Juniormester
08. september 2005 - 15:33 #13
Det var bare denne kommentar, jeg fejlagtigt tog for pålydende:
"Hmm Jeg har lige løbet lidt fundt på nettet og er kommet frem til at det er en bug som ikke kan rettes."

- men den var der åbenbart intet belæg for  :)
Avatar billede saucer Nybegynder
13. september 2005 - 09:41 #14
olebole >> Jeg har lige hentet FF "1.5 Beta 1" og der er fejlen rettet. Så det kan jo kun være at den gamle FF version havde en bug i sig..

Men igen det er min teori i praksis og ikke noget som jeg kan dokumentere for.
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