tradewind a écrit :
Je commence à m'initier à html + css et je trouve, entre autres dans ce site, beaucoup d'information sur les particularités de chaque browser. Cette partie compatibilité est quand même très lourde à gérer, je trouve.
Hmm, tout dépend de quoi on parle.
- Côté HTML, si tu prends HTML4, tu as un support correct de l'essentiel de la spec dans tous les navigateurs. Pas de souci particulier de ce côté.
- Côté CSS, le support de CSS 2.1 est complet dans tous les navigateurs, y compris dans Internet Explorer à partir de la version 8. Le souci, c'est de gérer IE7 (voire, pour certains projets, IE6). Gérer IE 6-7 quand on fait du CSS 2.1, ça demande de se limiter à un sous-ensemble de CSS 2.1, d'écrire des correctifs pour des bugs connus, voire de simuler des fonctionnalités non supportées de CSS 2.1 en utilisant JavaScript. J'ai envie de dire que c'est un boulot de spécialiste (intégrateur web / développeur front).
- Côté JavaScript, il y a pas mal de différences entre IE et le reste du monde (du moins avant IE8 et/ou IE9). Utiliser une lib telle que jQuery permet de «gommer» ces différences (en gros la lib fournit une API qui parle à chaque navigateur selon ses spécificités, ainsi que des outils pour faciliter des tâches courantes). Utiliser une telle lib est recommandé y compris par des experts en JavaScript; jQuery est populaire mais on peut aussi regarder du côté d'autres libs/frameworks, par exemple YUI3.
Voilà pour le socle technologique de base. Une remarque à ce stade: jQuery ou autre lib JS n'a pas spécialement pour but de pallier le mauvais support de CSS 2.1 dans IE 6-7. Ça permet de faire du JavaScript cross-browser, mais pas du CSS cross-browser.
Enfin, si on s'intéresse à des ajouts plus récents dans les navigateurs, en particulier à (certaines parties de) HTML5 et (certaines parties de) CSS3, ça demande un travail un peu précis:
- Il faut savoir ce qui est supporté dans quel navigateur (et rares sont les fonctionnalités très largement supportées).
- Il faut souvent pouvoir gérer les navigateurs qui ne supportent pas ces fonctionnalités, en gérant ça en dégradation gracieuse ou bien en proposant un «fallback» utilisant JavaScript et/ou Flash et/ou VML. Ces derniers sont souvent imparfaits.
Avoir conscience des possibilités actuelles (en combinant implémentations actuelles et mécanismes de fallback), pouvoir juger quand une nouveauté HTML5 ou CSS3 est utilisable en production pour un projet donné et avec quels aménagements éventuels... tout ça, c'est un boulot de spécialiste.
Donc j'ai envie de dire que si on n'est pas intégrateur web, on fait du HTML4 et du CSS2.1 en oubliant le support d'IE 6-7, on ne s'amuse pas trop à utiliser HTML5 et CSS3, et côté JavaScript on utilise effectivement une lib correcte pour se faciliter la vie (mais ça n'a rien de miraculeux et ça n'impacte pas le support de HTML et de CSS).