Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[CSS] Another horizontaal menu probleem (in IE7)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Het probleem:

Het menu werkt perfect onder FF 1-2, IE 5-6, Opera, Mac IE-FF, Safari, maar helaas heb ik problemen met IE 7.0.

Hij laadt het menu prima en de mouseovers werken ook prima. Echter als ik even in een ander venster zit en weer terug ga en vervolgens weer over de mouseovers ga blijven deze staan en dus krijg je een overlap van alle submenu items wat dus niet de bedoeling is.

Hoop dat iemand me kan helpen.

Voorbeeld van wat ik bedoel is hier te vinden:

http://www.telgenhof.nl/demo/index.html

De HTML code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
               <ul id="nav">
    
        <li><a href="#" class="parent">About Tx</a>
            <ul>
                <li><a href="#" class="first child">Brand Profile</a></li>
                <li><a href="#" class="child">History</a></li>
                <li><a href="#" class="child">Why Tx?</a></li>
                <li><a href="#" class="child">Employment</a></li>
                <li><a href="#" class="child">Contact us</a></li>
            </ul>
        </li>
        
        <li><a href="/products/" class="parent">Products</a>
            <ul>
                <li><a href="#" class="first child">Optical Media</a></li>
                <li><a href="#" class="child">Flash Memory Cards</a></li>
                <li><a href="#" class="child">USB Flash Drives</a></li>
                <li><a href="#" class="child">Portable Storage</a></li>
                <li><a href="#" class="child">Media Packaging</a></li>
            </ul>
        </li>
        
        <li><a href="#" class="parent">News Room</a>
            <ul>
                <li><a href="#" class="first child">Press Releases</a></li>
                <li><a href="#" class="child">New Products</a></li>
                <li><a href="#" class="child">Press Kit</a></li>
                <li><a href="#" class="child">Photo Library</a></li>
                <li><a href="#" class="child">Blogs</a></li>
                <li><a href="#" class="child">Newsletter</a></li>
            </ul>
        </li>
        
        <li><a href="#" class="parent">Support</a>
            <ul>
                <li><a href="#" class="first child">Downloads</a></li>
                <li><a href="#" class="child">Manual &amp; Guides</a></li>
                <li><a href="#" class="child">FAQ</a></li>
                <li><a href="#" class="child">RMA</a></li>
                <li><a href="#" class="child">Tutorials</a></li>
                <li><a href="#" class="child">Contact us</a></li>
            </ul>
        </li>
        
        <li><a href="#" class="parent">Where to Buy</a>
            <ul>
                <li><a href="#" class="first child">List per product</a></li>
                <li><a href="#" class="child">List per country</a></li>
            </ul>
        </li>
        
        <li><a href="#" class="parent">Contact</a>
            <ul>
                <li><a href="#" class="first child">Contact Us</a></li>
                <li><a href="#" class="child">Newsletter</a></li>
            </ul>
        </li>
    
    
        <li class="language"><a href="#" class="parent">Language</a>
            <ul>
                <li><a href="#" class="child">UK</a></li>
                <li><a href="#" class="child">DE</a></li>
                <li><a href="#" class="child">FR</a></li>
                <li><a href="#" class="child">NL</a></li>
            </ul>
        </li>
    
    </ul>


Javascript in de <head>:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
    /* <![CDATA[*/
    sfHover = function() {
    var sfEls = document.getElementById("nav").getElementsByTagName("LI");
    for (var i=0; i<sfEls.length; i++) {
    sfEls[i].onmouseover=function() {
    this.className+=" ie_does_hover";
    }
    sfEls[i].onmouseout=function() {
    this.className=this.className.replace(new RegExp(" ie_does_hover\\b"), "");
    }
    }
    }
    if (window.attachEvent) window.attachEvent("onload", sfHover);
    /*]]>*/
</script>


De CSS code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/* HEADER */
    
#header-nav{
 width:760px;
 background: #000;
 height: 45px;
 margin:auto;
} 

#nav, #nav ul {
padding: 0 0 0 0;
margin: 0;
list-style: none;
}

#nav li {
float: left;
width: auto;
padding-right: 20px;
}

#nav ul li {
float: left;
width: auto;
padding-right: 10px;
}

#nav ul {
position: absolute;
width: auto;
left: -2000px;
} 

#nav li:hover ul, #nav li.ie_does_hover ul {
left: auto;
}

#nav li a:hover, #nav li:hover a, #nav li.ie_does_hover a {
left: auto;
color: #e0e0e0;
}

#nav a {
display:block;
text-decoration: none;
font-weight: bold;
text-transform: uppercase;
padding-top: 1px;
padding-bottom: 1px;
} 

#nav a.first {
background: url(../images/smalltriangle.gif) center left no-repeat;
padding-left: 16px;
}

ul a.parent{
color: #94948a;
cursor: default;
font-size: 12px;
letter-spacing: 1px;
background-color: #000;
}

ul a.parent:hover, ul a.parent:active{
font-size: 12px;
color: #e0e0e0;
cursor: default;
background-color: #000;
}

ul ul a.child:link, ul ul a.child:visited, ul ul a.child:active{
font-size: 10px;
color: #e0e0e0;
cursor: pointer;
background-color: #000;
}

ul ul a.child:hover{
font-size: 10px;
color: #94948a;
cursor: pointer;
background-color: #000;
}

ul li{
background-color: #000;
}

ul ul li{
background-color: #000;
border-top: 0px solid #000;
border-left: 0;
}

/* IE only hack \*/
* html ul li, * html ul ul li{
border-bottom: 0px solid #000;
}

* html ul ul li{
border-top: 0;
}
/* Einde IE only hack */  

#nav li.language {
background: url(../images/triangle.gif) center left no-repeat;
padding-left: 18px;
padding-right:0px;
padding-top:3px;
float:right;
text-align:right;
}

/* END of HEADER */

Verwijderd

Ik kan je probleem niet dupliceren, het je het al gefixed?

Verder is dit niet met puur css op te lossen? Als dat niet kan probeer dan gewoon de style attributen te wijzigen zonder de class te verandere heel de tijd, dit is onefficient.

object.style.attribuut = 'blaat';

Zo doe ik dat tenminste.

Verwijderd

Topicstarter
Nee het probleem is er helaas nog steeds :(

Het probleem is iets beter zichtbaar door op een sublink te klikken. De sublinks blijven dan staan in IE 7.0, ook al ga je met je mousepointer van de mouseovers af.

Kan je niet helemaal volgen mbt je reactie. Zou je een kleine jip&janneke filter kunnen toepassen? :)

[ Voor 36% gewijzigd door Verwijderd op 13-06-2007 10:17 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

onblur van je window je menu resetten?

Overigens ondersteund IE7 gewoon :hover op alle elementen, dus ik zou dat stuk javascript mbv conditional comments targetten op IE < 7. Of beter: een pure javascript oplossing gebruiken voor alle browsers, CSS is immers niet bedoelt voor behavior.

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op woensdag 13 juni 2007 @ 10:18:
onblur van je window je menu resetten?
Ja daar heb je een goede :)

Wat doet die onblur() eigenlijk en hoe moet ik dat toepassen?

[ Voor 17% gewijzigd door Verwijderd op 13-06-2007 10:50 ]


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 28-11 11:15

sopsop

[v] [;,,;] [v]


Verwijderd

Topicstarter
Snap nu wat onblur() doet, maar in hoeverre zou ik dit kunnen toepassen om het probleem dat ik ondervind in het menu op te lossen?

Verwijderd

Topicstarter
iemand die me kan helpen?

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 28-11 11:15

sopsop

[v] [;,,;] [v]

Overigens ondersteund IE7 gewoon :hover op alle elementen, dus ik zou dat stuk javascript mbv conditional comments targetten op IE < 7.
Die opmerking ook al meegenomen?

Verwijderd

Topicstarter
sopsop schreef op dinsdag 26 juni 2007 @ 16:54:
Die opmerking ook al meegenomen?
ja neem aan van wel.. aangezien de hover elementen toch al zijn gedefinieerd in de css?

Verwijderd

Topicstarter
iemand nog een idee?

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op dinsdag 03 juli 2007 @ 09:28:
[...]


ja neem aan van wel.. aangezien de hover elementen toch al zijn gedefinieerd in de css?
ik neem aan van niet
ik zie nergens conditional comments staan

Verwijderd

Topicstarter
Ah ik begreep je blijkbaar niet, maar volgens mij geldt dit ook voor jou.

Want het menu werkt prima zonder de javascript voor alle browsers en IE < 7. Alleen voor IE 7 heb ik het script gebruikt, alleen blijkt het dus niet te werken :S

Vraag is dus, hoe los ik dit op voor IE 7?

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 28-11 11:15

sopsop

[v] [;,,;] [v]

Verwijderd schreef op maandag 06 augustus 2007 @ 13:57:
Ah ik begreep je blijkbaar niet, maar volgens mij geldt dit ook voor jou.

Want het menu werkt prima zonder de javascript voor alle browsers en IE < 7. Alleen voor IE 7 heb ik het script gebruikt, alleen blijkt het dus niet te werken :S

Vraag is dus, hoe los ik dit op voor IE 7?
Volgens mij snap ik je nog niet, of jij ons niet: voor IE7 hoef je het script niet te gebruiken. Dus in principe zonde de IE-hacks en geen javascript.

[ Voor 5% gewijzigd door sopsop op 06-08-2007 15:38 ]


Verwijderd

Topicstarter
hehe, nu begrijpen we elkaar.. (bijna)

Alleen als ik het script buiten beschouwing laat werkt het menu dus helemaal niet in IE7

Alle browsertypes verder wel, alleen IE7 niet.

Als ik dat JS wel run dan werkt het menu nogsteeds in alle browsertypes (zonder IE7) en in IE7 dus maar half.

Verwijderd

Topicstarter
iemand die me wil helpen?

De code is trouwens ook te downloaden vanaf:

http://www.telgenhof.nl/demo/demo.zip

Verwijderd

Topicstarter
UPDATE: Ben inmiddels aan een nieuwe manier begonnen, aangezien ik echt geen oplossing denk te gaan vinden voor bovenstaand probleem.

Op

http://www.telgenhof.nl/demo/test/

staat de nieuwe en de popout lijkt in ieder geval te werken in IE 7 en in alle andere browsers!! TOP!

MAAR ik krijg het submenu niet horizontaal in IE, iemand een idee hoe ik dit kan oplossen?

Code: http://www.plaatscode.be/6210/

Alvast bedankt!

Verwijderd

Topicstarter
iemand? :/

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
wat heb je zelf al gedaan om het probleem er achter te halen?
zet bijvoorbeeld eens een 1px solid red border om je 2nd level LIs. Dan zie je dat die veel te groot zijn in IE en kom je dus al snel tot de conclusie dat ze daarom onder elkaar komen.
Pagina: 1