02-01-2008, 10:51 PM
Personnellement pour éviter les problèmes d'incompatibilité CSS entre les différents navigateurs, j'inclu toujours dans ma feuille de style ces définitions, elles permettent de remettre à zéro les différences de propriétés entre les navigateurs.
Concernant le CSS et le Javascript, il faut bien comprendre qu'ils n'ont pas du tout le même rôle, le CSS permet de mettre en forme la structure xhtml, et le javascript permet entre autre de travailler sur les propriétés CSS des différents éléments.
Le javascript permet dans tous les cas d'optimiser les ressources serveurs, notamment grâce à l'utilisation d'AJAX en récupérant uniquement une petite partie de l'information sur le serveur php, et en la traitant directement chez le client, notamment grâce aux réponses formatter en XML ou JSON qui permettent de passer simplement des instructions ou des variables de php à javascript.
Pour rendre ce code javascript non obstrusif, il faut recharger entièrement la page, traiter l'information, pour enfin recompiler et envoyer la page complète à l'utilisateur.
Les deux fonctions sont exactement les mêmes et seul la façon de les traiter diffère.
Pour ma part, je pars toujours du principe que la page est codée normalement, un clic pour se déplacer renvoi vers la page en prenant en compte l'action du déplacement, puis une fois codée cette page, je lui ajoute la "couche" javascript qui va permettre à 90% des utilisateurs de me faire économiser des ressources et lui de gagner un temps de rechargement plus court, et bien plus dynamique pour son expérience.
Le javascript ne doit pas se substituer aux calculs des pages, il doit juste les rendre plus dynamiques et mieux optimisés, afin de minimiser ces rechargement.
Evidemment cela implique de coder deux fois l'action mais cela permet d'avoir un code qui reste compatible dans toutes les situations.
L'exemple de plus concret reste la validation javascript des formulaires, elles permettent de ne pas recharger la page et donc de gagner gloablement 5-6 requêtes, en laissant au choix l'utilisateur de calculer lui même si le formulaire a lieu d'être envoyé. Mais cette utilisation implique quand même de vérifier le formulaire côté serveur. Puisuqe les données envoyés ne sont jamais sûres à 100%.
En partant de ce principe on arrive facilement à faire des sites qui sont toujours compatibles quel que soit la configuration du client, et qui optimise les ressources du serveur.
Il ne faut juste jamais oublier que la couche javascript ne se substitue pas à la couche php, elle permet juste de rendre l'utilisation client plus agréable. Chaque langage possède une utilisation qui lui est propre, il ne faut pas les substituer mais les faire cohabiter.
Code :
/* Pas de marqueurs de listes, puisque qu'ils sont principalement utilisés pour la sémantique, ils est plus simple de remettre une nouvelle classe aux listes */
ul,ol { list-style:none }
/* On supprime les tailles de polices différentes suivants les navigateurs */
h1,h2,h3,h4,h5,h6,pre,code { font-size:1em; }
/* Suppression de tous les paddings et margins qui sont différents par defaut sur les navigateurs */
ul,ol,li,h1,h2,h3,h4,h5,h6,
pre,form,body,html,blockquote,
fieldset,input,p,dl,dt,dd
{ margin:0; padding:0 }
/* On remet à zéro le line-height */
h1,h2,h3,h4,h5,h6,p {
line-height: 1.2em;
}
/* On peut mettre une marge par defaut pour différencier les paragraphes, elle devient donc la même sous tous les navigateurs */
p { margin: 10px; }
/* On supprime les bordures bleu sous IE... C'est très laid */
a img,:link img,:visited img { border:none }
Concernant le CSS et le Javascript, il faut bien comprendre qu'ils n'ont pas du tout le même rôle, le CSS permet de mettre en forme la structure xhtml, et le javascript permet entre autre de travailler sur les propriétés CSS des différents éléments.
Le javascript permet dans tous les cas d'optimiser les ressources serveurs, notamment grâce à l'utilisation d'AJAX en récupérant uniquement une petite partie de l'information sur le serveur php, et en la traitant directement chez le client, notamment grâce aux réponses formatter en XML ou JSON qui permettent de passer simplement des instructions ou des variables de php à javascript.
Pour rendre ce code javascript non obstrusif, il faut recharger entièrement la page, traiter l'information, pour enfin recompiler et envoyer la page complète à l'utilisateur.
Les deux fonctions sont exactement les mêmes et seul la façon de les traiter diffère.
Pour ma part, je pars toujours du principe que la page est codée normalement, un clic pour se déplacer renvoi vers la page en prenant en compte l'action du déplacement, puis une fois codée cette page, je lui ajoute la "couche" javascript qui va permettre à 90% des utilisateurs de me faire économiser des ressources et lui de gagner un temps de rechargement plus court, et bien plus dynamique pour son expérience.
Le javascript ne doit pas se substituer aux calculs des pages, il doit juste les rendre plus dynamiques et mieux optimisés, afin de minimiser ces rechargement.
Evidemment cela implique de coder deux fois l'action mais cela permet d'avoir un code qui reste compatible dans toutes les situations.
L'exemple de plus concret reste la validation javascript des formulaires, elles permettent de ne pas recharger la page et donc de gagner gloablement 5-6 requêtes, en laissant au choix l'utilisateur de calculer lui même si le formulaire a lieu d'être envoyé. Mais cette utilisation implique quand même de vérifier le formulaire côté serveur. Puisuqe les données envoyés ne sont jamais sûres à 100%.
En partant de ce principe on arrive facilement à faire des sites qui sont toujours compatibles quel que soit la configuration du client, et qui optimise les ressources du serveur.
Il ne faut juste jamais oublier que la couche javascript ne se substitue pas à la couche php, elle permet juste de rendre l'utilisation client plus agréable. Chaque langage possède une utilisation qui lui est propre, il ne faut pas les substituer mais les faire cohabiter.