28172 sujets

CSS et mise en forme, CSS3

BOnjour a tous
J'ai un petit probleme sur un menu jquery qui ne prend pas en compte ma feuille de style
Je voulais mettre en place une feuille de style alternative mais je n'arrive pas a identifier a quel niveau se trouve le probleme?

http://www.centrecristal.com/Espace_pro/index.php
http://www.centrecristal.com/_css/style.css

(le css est au niveau de nav1 & menu)

Ca passe tres bien sous chrome, mozilla ou safarie, mais sous ie (pour changer) ca plante et rien n'est pris en compte?

C'est au niveau des float? des block?
Si quelqu'un à une petite idée
Merci d'avance
Hello ubik74 et bienvenue,

Voici ton code :
<!--[if lte IE 6]><link rel="stylesheet" type="text/css" href="../_css/styleie.css" /><![ endif]-->
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="../_css/styleie.css" /><![ endif]-->
<!--[if IE 7]><link rel="stylesheet" type="text/css" href="../_css/style.css" /><![ endif]-->
<!--[if IE 8]><link rel="stylesheet" type="text/css" href="../_css/style.css" /><![ endif]-->
<!--[if !IE]> <!--><link rel="stylesheet" type="text/css" href="../_css/style.css" /><!--> <![ endif]-->
<!--[if lte IE 8]><noscript><meta http-equiv="refresh" content="0;URL=http://www.centrecristal.com/nojs/index.php" /></noscript><![ endif]-->
(j'ai rajouté un espace sur les [ endif] pour qu'ils ne soient pas interprétés comme du BBCode).

Plusieurs remarques :
* il ne sert à rien d'avoir 2 feuilles de styles complètes : il suffit d'en déclarer une générale en premier pour les navigateurs respectueux des standards(ce qui inclue IE8) et de rajouter éventuellement quelques correctifs pour les versions IE6- et/ou IE7. En plaçant ces déclarations en dernier ce sont elles qui seront prises en compte.
* if lte IE 6 cible les versions inférieures ou égales à IE6. Cette déclaration est donc inutile puisque if lte IE 7 cible les versions inférieures ou égales à IE7... dont IE6.
* tu mets ensuite if IE 7 pour charger une autre feuille de style donc avec ce navigateur tu va charger 2 fois les css !
* if IE 8 ne sert à priori à rien puisqu'il respecte les standards css et ne nécessite pas de correctifs particuliers. D'autre part le jour où on passera à IE9 plus aucun style ne sera chargé !
* du coup if !IE devient lui aussi inutile et il ne reste plus que
<link rel="stylesheet" type="text/css" href="../_css/style.css" />
<!--[if lte IE 6]><link rel="stylesheet" type="text/css" href="../_css/styleie.css" /><![ endif]-->
Je précise à nouveau que styleie.css ne devrait contenir que quelques correctifs destinés à surcharger la feuille de base.

Lire à ce sujet : Qu’est-ce que les commentaires conditionnels.

D'autre part la dernière ligne if lte IE 8 est vraiment étrange : d'abord parce que si tu as codé ta page en tenant compte du fait que JavaScript doit être non intrusif il est inutile de faire une redirection en cas de JS désactivé et ensuite parce que je ne comprends pas très bien pourquoi tu ne ferais cette redirection que pour les versions d'IE inférieures ou égales à 8 ?
Merci pour ces constatations fort claire et qui effectivement met un peu d'ordre dans mon code (qui je l'avoue etait cahotique mais j'en était conscient)
J'ai bien pris note concernant ma feuille ie qui doit être allégée
Je te remercie en tout cas pour tes remarques bien détaillée.
Je vais encore essayé de solutionner mon problème de >ie8 pour mon menu du haut qui ne passe pas mais ca doit etre un probleme de float ou de box dans mon css, il faut que j'allège tout ca

en tout cas merci des conseils Smiley smile
<!--[if lte IE 8]><noscript><meta http-equiv="refresh" content="0;URL=http://www.centrecristal.com/nojs/index.php" /></noscript><![ endif]-->


Ah et concernant cette note, c'est un moyen (mauvais naturellement) que j'ai trouvé pour passer au travers de la validation wc3 xhtml transitional. si je met le code tel quel "no script...." il m'indique une erreure que je n'ai pas réussi a solutionner.

c'est totalement faux dans le raisonnement et sur la forme mais c'était en attendant de trouver une réponse sur le net pour une redirection si le browser n'a pas javascript activé et pour rediriger la page qui soit valide en xhtml1 transitional
Modifié par ubik74 (18 Aug 2009 - 21:55)