Problème avec menu en CSS

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Problème avec menu en CSS

Message par EmmaZL »

Au secours, je désespère :cry: .

Je pensais avoir résolu ce problème depuis longtemps (ça fait 1 an que mon site tourne avec ce menu), mais je viens d'avoir une mauvaise surprise avec IE 6 (sur Windows XP SP 2) sur le PC d'une collègue au bureau. En fait chez elle, le menu ne se développe pas au passage de la souris.

Le menu est donc en CSS avec des pseudo-class :hover sur une balise <li>. D'après ce que j'ai compris, IE 6 n'interprète pas le :hover sur autre chose que <a>. J'utilise donc un fichier csshover.htc qui est censé résoudre ce problème. C'est d'ailleurs ce qu'il fait. Ou c'est ce que je croyais. Car j'ai testé sur 3 autres PC avec IE 6 et ça fonctionne très bien. Sauf que sur celui de ma collègue, ça ne marche pas.

Donc ma question est la suivante : Qu'est-ce qui empêche csshover.htc de fonctionner chez ma collègue ?

On a pas mal de sécurités informatiques au bureau, mais je suis sûre que javascript est activé. Est-ce que d'autres protocoles de sécurité pourraient empêcher csshover.htc de fonctionner correctement ? ActiveX ? Autres ? Ou alors le problème est-il ailleurs ?

Le menu est ici : http://www.barf.ch/index2.htm

Merci de votre aide.

Emma.



Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

lis bien la note 1 en bas de la page de csshover . C'est peut être le problème.

Si ton serveur est apache, essaies de mettre un fichier nommé .htaccess à la racine de ton site, contenant :

Code : Tout sélectionner

.htc text/x-component
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Pas de souci chez moi avec IE6 SP2. C'est donc autre chose. Je dirais, vérifie que Javascript est activé.

Mais ça ne peut pas faire de mal de donner le bon type MIME en effet :)
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Message par EmmaZL »

@calimo : Oui, javascript est bel et bien activé. Je viens de revérifier à l'instant histoire d'être bien sûre. Chez moi aussi ça fonctionne avec IE6 et c'est le cas de tous le PC que j'ai pu tester, sauf celui de ma collègue. Bon, honnêtement je m'en fous un peu de ma collègue... :lol: C'est juste que je me dis qu'il pourrait y avoir plein d'autres gens dans son cas à travers le monde, qui sait... :cry:

@martin : Merci. Mon serveur est Apache, en effet. Je vais essayer. Le ficher doit s'appeler .htaccess tout court ? Y a rien avant le point, juste ? Je prends juste le bloc-notes et je copie le code que t'as mis et j'enregistre sous .htaccess ? Bon, j'essaie et je te tiens au courant...

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

EmmaZL a écrit :@calimo : Oui, javascript est bel et bien activé. Je viens de revérifier à l'instant histoire d'être bien sûre. Chez moi aussi ça fonctionne avec IE6 et c'est le cas de tous le PC que j'ai pu tester, sauf celui de ma collègue. Bon, honnêtement je m'en fous un peu de ma collègue... :lol: C'est juste que je me dis qu'il pourrait y avoir plein d'autres gens dans son cas à travers le monde, qui sait... :cry:
Et surtout plein de gens dans d'autres cas pour qui ça ne fonctionne pas non plus. Et ça il ne faut pas l'oublier non plus ;-)
EmmaZL a écrit :@martin : Merci. Mon serveur est Apache, en effet. Je vais essayer. Le ficher doit s'appeler .htaccess tout court ? Y a rien avant le point, juste ? Je prends juste le bloc-notes et je copie le code que t'as mis et j'enregistre sous .htaccess ? Bon, j'essaie et je te tiens au courant...
Oui c'est exact, ça commence par un point ce qui veut dire que c'est un fichier caché sous les systèmes *nix.
Et c'est bien du texte seul donc évite d'enregistrer ça au format .doc de MSWord :P
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Message par EmmaZL »

calimo a écrit :
EmmaZL a écrit :@calimo : Oui, javascript est bel et bien activé. Je viens de revérifier à l'instant histoire d'être bien sûre. Chez moi aussi ça fonctionne avec IE6 et c'est le cas de tous le PC que j'ai pu tester, sauf celui de ma collègue. Bon, honnêtement je m'en fous un peu de ma collègue... :lol: C'est juste que je me dis qu'il pourrait y avoir plein d'autres gens dans son cas à travers le monde, qui sait... :cry:
Et surtout plein de gens dans d'autres cas pour qui ça ne fonctionne pas non plus. Et ça il ne faut pas l'oublier non plus ;-)
Oui, mais moi je pensais que faire un menu CSS ça me permettait d'avoir une compatibilité maximale. :cry: Et j'aime bien mon menu CSS. Il est joli je trouve. Les menus en javascript sont tout pourris comparé à ceux en CSS. :(

Bon, j'ai fait un fichier .htaccess (avec notepad :wink: ) et je l'ai balancé sur le serveur avec mon client FTP. Le problème c'est que ça me fait une erreur 500 :
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, and inform them of the time the error occurred and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.



--------------------------------------------------------------------------------

Apache Server at barf.ch
... alors j'ai dû l'enlever... :cry: J'ai posé la question à mon hébergeur et visiblement je ne peux pas mettre de fichier .htaccess
:(

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

EmmaZL a écrit : ... alors j'ai dû l'enlever... :cry: J'ai posé la question à mon hébergeur et visiblement je ne peux pas mettre de fichier .htaccess
:(
euh, solution 1, changer d'hébergeur ? :D

autre solution, as tu accés à php, ou à un autre language sur le serveur ?
Car on peut ruser, cibler un fichier php qui enverra le bon type mime puis le fichier, au lieu du fichier htc directement.
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Message par EmmaZL »

martin a écrit :
EmmaZL a écrit : ... alors j'ai dû l'enlever... :cry: J'ai posé la question à mon hébergeur et visiblement je ne peux pas mettre de fichier .htaccess
:(
euh, solution 1, changer d'hébergeur ? :D

autre solution, as tu accés à php, ou à un autre language sur le serveur ?
Car on peut ruser, cibler un fichier php qui enverra le bon type mime puis le fichier, au lieu du fichier htc directement.
Oui, oui j'ai php. Pas de problème de ce côté là... :wink:


Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

alors tu vas créer un fichier csshover.php contenant :

Code : Tout sélectionner

<?php
$path = 'csshover.htc';
$len = filesize($path);

header('Content-type: text/x-component');
header('Content-Length: ' . $len);
header('Content-Disposition: inline; filename="csshover.htc"');
readfile($path);
?>
tu le places à coté de csshover.htc .

et dans ton fichier html, au lieu de pointer vers csshover.htc, pointe vers csshover.php .

Autre remarque, remplace tes commentaires conditionnels IE :

Code : Tout sélectionner

<!--[if IE]>
par

Code : Tout sélectionner

<!--[if lt IE 7]>
car il me semble que tu n'as pas besoin d'appliquer ce "patch" à IE7 ;) .

[edit]écrit à la va-vite, pas testé, préviens moi si çà plante ;)
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Message par EmmaZL »

martin a écrit :alors tu vas créer un fichier csshover.php contenant :

Code : Tout sélectionner

<?php
$path = 'csshover.htc';
$len = filesize($path);

header('Content-type: text/x-component');
header('Content-Length: ' . $len);
header('Content-Disposition: inline; filename="csshover.htc"');
readfile($path);
?>
tu le places à coté de csshover.htc .

et dans ton fichier html, au lieu de pointer vers csshover.htc, pointe vers csshover.php .

Autre remarque, remplace tes commentaires conditionnels IE :

Code : Tout sélectionner

<!--[if IE]>
par

Code : Tout sélectionner

<!--[if lt IE 7]>
car il me semble que tu n'as pas besoin d'appliquer ce "patch" à IE7 ;) .

[edit]écrit à la va-vite, pas testé, préviens moi si çà plante ;)
Merci martin. Je vais essayer ça ce soir et je te donnerai des nouvelles.

Par contre pour IE 7, si c'est de csshover dont tu parles, oui je dois appliquer le "patch". Car Microsoft avait promis que :hover marcherait avec IE 7, mais ce n'est pas le cas. C'est pour cela que dans csshover.htc, j'ai :

Code : Tout sélectionner

function parseStylesheets() {
	if(!/MSIE (5|6|7)/.test(navigator.userAgent)) return;
Si je ne mets pas le "7", ça ne fonctionne pas avec IE 7.



Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

EmmaZL a écrit :Oui, mais moi je pensais que faire un menu CSS ça me permettait d'avoir une compatibilité maximale. :cry: Et j'aime bien mon menu CSS. Il est joli je trouve. Les menus en javascript sont tout pourris comparé à ceux en CSS. :(
A priori les choses qui bougent et apparaissent / disparaissent dans une page posent forcément des problèmes d'accessibilité.
EmmaZL a écrit :
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, and inform them of the time the error occurred and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Je dirais que cette erreur indique que justement le .htaccess a été pris en compte et est incorrect.
En relisant le message de martin, je dirais qu'il manque un AddType et que l'extension doit se trouver après le type MIME.
http://httpd.apache.org/docs/2.0/mod/mo ... ml#addtype

Essaye ça plutôt :

Code : Tout sélectionner

AddType text/x-component .htc
C'est qui ton hébergeur ?

De plus, tu devrais avoir accès aux logs... ? Ils peuvent te donner énormément d'informations sur cette erreur !
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

calimo a écrit : Essaye ça plutôt :

Code : Tout sélectionner

AddType text/x-component .htc
C'est qui ton hébergeur ?
arf, évidement, merci calimo, tu as bien raison, j'ai répondu comme un bourrin :oops: :lol:

réessaie avec le code de calimo.
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Message par EmmaZL »

Mon hébergeur c'est www.aladin.net (plan discount à CHF 5.-/mois).

Je vais essayer avec le nouveau code avant d'essayer le php et je vous tiens au courant.


@calimo : Ok je comprends qu'il faille faire des choses accessibles, mais par exemple le menu horizonal qui est en haut de Geckozone il fonctionne bien partout et il est en css et il disparait et apparait, non ?

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

EmmaZL a écrit :@calimo : Ok je comprends qu'il faille faire des choses accessibles, mais par exemple le menu horizonal qui est en haut de Geckozone il fonctionne bien partout et il est en css et il disparait et apparait, non ?
Je n'en mettrais pas ma main au feu... pense par exemple à ceux qui naviguent au clavier (sans souris)... essaye pour voir... tu devrais au moins mettre en place un lien sur chaque rubrique plutôt qu'un "#" :wink:
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Message par EmmaZL »

calimo a écrit :
EmmaZL a écrit :@calimo : Ok je comprends qu'il faille faire des choses accessibles, mais par exemple le menu horizonal qui est en haut de Geckozone il fonctionne bien partout et il est en css et il disparait et apparait, non ?
Je n'en mettrais pas ma main au feu... pense par exemple à ceux qui naviguent au clavier (sans souris)... essaye pour voir... tu devrais au moins mettre en place un lien sur chaque rubrique plutôt qu'un "#" :wink:
Ok, je vais voir si je peux arranger ça alors. Merci de ton aide. :wink:

J'ai refait le fichier .htaccess avec le nouveau code. Je ne peux pas tester sur le PC de ma collègue avant demain matin mais ce qui est sûr c'est que je n'ai plus l'erreur 500. :wink:

Et je remarque que le menu de Geckozone utilise aussi csshover.htc. Je vais pouvoir tester sur le PC de ma collègue et comme ça je pourrai déjà savoir si c'est un problème dans mon code ou sur ça machine. Vous pensez que c'est une bonne idée ?


Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités