Avatar billede langkiller Nybegynder
21. september 2011 - 11:32 Der er 8 kommentarer og
1 løsning

Javascript dropdown menu fejler i IE !

Har lavet en dropdown menu på en side jeg er igang med. Det hele så perfekt ud i Chrome, men da jeg testede i IE var den helt gal. Den kunne slet ikke vise menu "bjælken", men kun underpunkterne når man køre musen hen over de tomme hvide felter. Derudover er dropdown menuens bredde alt for lille i IE.
Har ingen ide om hvordan sådan noget fixes, er det noget i følgende? Ellers kan jeg poste selve javascript koden.. eller css, men tvivler på det er der fejlen ligger.


    <html>
    <head>
    <script type=\"text/javascript\" src=\"simpleDropDownMenu.js\"></script>
    </head>
   
    <link rel=\"stylesheet\" href=\"style.css\">
    <body topmargin=\"0\" leftmargin=\"0\" right=\"0\">
   
    <div><img src=\"pics/logo1.jpg\">
   
   
    <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" height=\"39\">
    <tr background=\"pics/bg_menu.png\">
    <td>&nbsp;</td>
   
    <td valign=\"middle\" cellspacing=\"0\" width=\"60\">
      <center><p><font color=\"#ffffff\">Forside</font></p></center>
    </td>
   
    <td valign=\"middle\" cellspacing=\"0\" width=\"90\" onmouseover=\"mopen(1);\" onmouseout=\"mcancelclosetime();\">
      <center>
      <font color=\"#ffffff\">Foreningen</font>
      <div class=\"submenu\" id=\"menu1\" onmouseover=\"mcancelclosetime()\" onmouseout=\"mclosetime();\">
        <a href=\"#\">bla </a>
        <a href=\"#\">blabla</a>
        <a href=\"#\">blablabla</a>
        <a href=\"#\">blaaaa</a></p>
      </div>
      </center> 
    </td>

    <td valign=\"middle\" cellspacing=\"0\" width=\"65\" onmouseover=\"mopen(2);\" onmouseout=\"mcancelclosetime();\">
      <center>
      <font color=\"#ffffff\">Historie</font>
      <div class=\"submenu\" id=\"menu2\" onmouseover=\"mcancelclosetime()\" onmouseout=\"mclosetime();\">
        <a href=\"#\">punkt 1</a>
        <a href=\"#\">punkt 2</a>
      </div>
      </center> 
    </td>   
    </tr>
    </table>
Avatar billede BrianCsection Nybegynder
21. september 2011 - 13:06 #1
Ved godt det ikke er et direkte svar på dit spørgsmål, men bliver nød til at komme med lidt konstruktiv kritik :)

Hvis du vel gøre det en hel del nemmere for dig selv, så laver du den menu i ren HTML og CSS, som f.eks vist her: http://css.flepstudio.org/en/css-tutorials/horizontal-drop-down-menu.html

man vil normalt ikke bruge et table til at lave en menu med, der bruger man som regl lister, ul, li osv., og det du har gjort her med en masse in-line javascript, er bare ikke særlig nemt at vedligeholde senere hen.

Det er en god ide at lave al din styling i CSS også.. som f.eks BODY margin, padding osv.

Bare et lille forslag :)
Avatar billede langkiller Nybegynder
26. september 2011 - 11:40 #2
fedt! har fået den til at virke med udelukkende css nu, men kan ikke få den til at lave en 1px kant i toppen og bunden. Min css indtil videre:

#menu{
padding:0;
margin:0;
}

#menu ul{
width: 100%;
border-style:solid;
border-top: 1px;
border-bottom: 1px;
border-color: #003;
padding:0;
margin:0;
}

#menu li{
position: relative;
float: left;
list-style: none;
margin: 0;
padding:0;
}

#menu li a{
width:100px;
height: 30px;
display: block;
text-decoration:none;
text-align: center;
line-height: 30px;
background-color: #4c6aa9;
color: white;
}

#menu li a:hover{
background-color: #1a3776;
}

#menu ul ul{
position: absolute;
top: 30px;
visibility: hidden;
}

#menu ul li:hover ul{
visibility:visible;
}
Avatar billede BrianCsection Nybegynder
26. september 2011 - 13:30 #3
evt. smid hele HTML koden - men umiddelbart smid border på #menu.
Avatar billede langkiller Nybegynder
26. september 2011 - 15:07 #4
Virkede ikke. Her er html koden til menuen som jeg brugte direkte fra tutorialen:


<div id=\"menu\">
<ul>
<li><a href=\"#nogo\">Link 1</a>
<ul>
<li><a href=\"#nogo\">Link 1-1</a></li>
<li><a href=\"#nogo\">Link 1-2</a></li>
<li><a href=\"#nogo\">Link 1-3</a></li>
</ul>
</li>
<li><a href=\"#nogo\">Link 2</a>
<ul>
<li><a href=\"#nogo\">Link 2-1</a></li>
<li><a href=\"#nogo\">Link 2-2</a></li>
<li><a href=\"#nogo\">Link 2-3</a></li>
</ul>
</li>
<li><a href=\"#nogo\">Link 3</a>
<ul>
<li><a href=\"#nogo\">Link 3-1</a></li>
<li><a href=\"#nogo\">Link 3-2</a></li>
<li><a href=\"#nogo\">Link 3-3</a></li>
</ul>
</li>
</ul>
</div>
Avatar billede NielsErikP Mester
26. september 2011 - 21:38 #5
Hej...
Virker det ikke, hvis du ændrer :


#menu{
padding:0;
margin:0;
}

#menu ul{
width: 100%;
border-style:solid;
border-top: 1px;
border-bottom: 1px;
border-color: #003;
padding:0;
margin:0;
}



Til  :


#menu{
padding:0;
margin:0;
border-top: 1px;
border-bottom: 1px;
}

#menu ul{
width: 100%;
border-style:solid;

border-color: #003;
padding:0;
margin:0;
}

Avatar billede BrianCsection Nybegynder
04. oktober 2011 - 09:12 #6
http://jsfiddle.net/BrianC/XqXYv/82/

prøv og kig på den her. Grunden til at du ik kunne få det til at virke først, var fordi at #menu og ul ikke havde float: left;
Avatar billede NielsErikP Mester
04. oktober 2011 - 15:09 #7
Hej...
#6:
Både float:left og position:realtive!!!


@langkiller :
Giver dig lige hele mit eksempel (ren Html/Css) :


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

<html>
<head>
    <title>
    </title>
       
    <link rel="stylesheet" href="sti til ekstern, hvis din Css skal i seperat fil" type="text/css" />
   
<style type="text/Css">

* {
    list-style-type: none;
    text-decoration: none;
}
#HeleMenu {
    margin: 0;
    padding: 0;
}
#HeleMenu li {
    background: #524F62;
    text-align: center;
    position:relative;
    float: left;
    display: block;
    height: auto;
    line-height: 30px;
    border-right: 1px dotted black;
}   
#HeleMenu li a {
    color: burlywood;
}
#HeleMenu li ul {
    display: none;
}
#HeleMenu li:hover {
    background: #FFFACD;
}
#menu1 {
    width: 107px;
}
#menu4, #menu5 {
    width: 101px;
}
#menu2, #menu3, #menu6, #menu7, #menu8 {
    width: 104px;
}
#menu9 {
    width: 112px;
}
#menu1:hover ul, #menu2:hover ul, #menu3:hover ul, #menu4:hover ul, #menu5:hover ul, #menu6:hover ul, #menu7:hover ul, #menu8:hover ul {
    margin: 0;
    padding: 0;
    display: block;
    position:absolute;
}
#menu9:hover ul  {
    margin: 0;
    padding: 0;
    display: block;
    position:absolute;
    right: -1px;
}             
#menu1:hover ul li, #menu2:hover ul li, #menu3:hover ul li, #menu5:hover ul li, #menu6:hover ul li, #menu7:hover ul li, #menu8:hover ul li {
    text-align: left;
    width: 170px;
    padding-left: 10px;
}
#menu4:hover ul li {
    text-align: left;
    width: 225px;
    padding-left: 10px;

#menu9:hover ul li {
    text-align: right;
    width: 170px;

#menu9Anker1 a {
    padding-right: 5px;

#menu9Anker2 a {
    padding-right: 13px;
}
</style>   
</head>
<body>

                    <div>
                        <ul id="HeleMenu">
                            <li id="menu1"> <a href="#">Menu1 </a> </li>
                            <li id="menu2"> <a href="#">Menu2 </a>
                                <ul>
                                    <li> <a href="#">Undermenu2_1 </a> </li>
                                    <li> <a href="#">Undermenu2_2 </a> </li>
                                </ul>
                            </li>
                            <li id="menu3"> <a href="#">Menu3 </a>
                            <ul>
                                <li> <a href="#">Undermenu3_1 </a> </li>
                                <li> <a href="#">Undermenu3_2 </a> </li>
                                <li> <a href="#">Undermenu3_3 </a> </li>
                            </ul>
                            </li>   
                            <li id="menu4">  <a href="#">Menu4 </a>
                                <ul>
                                    <li> <a href="#">Undermenu4_1 </a> </li>
                                    <li> <a href="#">Undermenu4_2 </a> </li>
                                    <li> <a href="#">Undermenu4_3 </a> </li>
                                    <li> <a href="#">Undermenu4_4 </a> </li>
                                    <li> <a href="#">Undermenu4_5 </a> </li>
                                </ul>
                            </li>               
                            <li id="menu5">  <a href="#">Menu5  </a> </li>
                            <li id="menu6">  <a href="#">Menu6</a> </li>
                            <li id="menu7">  <a href="#">Menu7</a> </li>
                            <li id="menu8">  <a href="#">Menu8</a>
                                <ul>
                                    <li> <a href="#">Undermenu8_1 </a> </li>
                                    <li> <a href="#">Undermenu8_2 </a> </li>
                                    <li> <a href="#">Undermenu8_3 </a> </li>
                                </ul>
                            </li>
                            <li id="menu9">  <a href="#">Menu9 </a>
                                <ul>
                                    <li id="menu9Anker1"> <a href="#">Undermenu9_1</a> </li>
                                    <li id="menu9Anker2"> <a href="#">Undermenu9_2 </a> </li>
                                </ul>   
                            </li>
                 
                        </ul>
                    </div>
</body>
</html>


Avatar billede BrianCsection Nybegynder
04. oktober 2011 - 15:23 #8
#7 nu rettede jeg sådan set bare hans kode til, så han kunne få den border han spurgte til.

Men det eksempel du giver dér, er altså alt for bloated. Det kan man skrive med meget mindre kode.

im just saying :)
Avatar billede NielsErikP Mester
04. oktober 2011 - 15:31 #9
Hej..
#8: Nå..ja fint nok!!!

#7:
Det virker!!! I'M JUST SPELLING OUT!!!

Hav nu en rigtigt god dag.
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