2010-03-07 6 views
5

Je pensais aux standards du Web, et je me demandais si nous avions besoin d'un code HTML et CSS valide avant d'appliquer JavaScript?Est-ce que HTML et CSS doivent être valides avant d'appliquer JavaScript?

Quelqu'un peut-il m'éclairer sur la relation entre HTML valide, CSS et JavaScript?

Par exemple, est-ce que HTML et CSS invalides empêchent JavaScript de fonctionner correctement?

+1

Rappelez-vous toujours que les utilisateurs les plus sérieux utiliseront Firefox avec l'extension NoScript. Ainsi, vous devez vous assurer que votre site Web est entièrement fonctionnel sans javascript. Javascript ne devrait être utilisé que pour améliorer l'expérience utilisateur. –

+2

@PP: ce conseil est ridicule. Votre site devrait être entièrement fonctionnel sans js pour apaiser google et les autres bots, pas pour satisfaire J. Random Nerd avec NoScript. Le pourcentage d'internautes utilisant noscript est toujours négligeable pour presque tous les sites (si vous avez des statistiques, veuillez citer). –

Répondre

4

Autant dire que nous payons pour avoir un code HTML valide, les navigateurs sont extrêmement tolérants. Les raisons en sont historiques. Il y avait (et est encore) beaucoup de mauvais HTML au début. Mais vous pouvez obtenir des différences imprévisibles entre les navigateurs avec HTML mal formé. Par exemple, différents navigateurs peuvent traiter différemment un tag non fermé.

Tout le balisage qui doit arriver est de former un DOM (Document Object Model) dans le navigateur en fonction de la manière dont ce navigateur l'a interprété. CSS et Javascript sont tous deux appliqués au DOM.

+0

Ils pardonnent ... jusqu'à ce qu'ils ne le soient pas. Lors de mon dernier travail, nous devions exécuter nos pages de médias sociaux en harmonie avec le client HTML, CSS et Javascript. Et laissez-moi vous dire, certains de ces trucs ne sont pas sympa du tout. Vous découvrez que certains navigateurs ignorent les éléments déséquilibrés, les éléments auto-fermés incorrectement, etc., et d'autres non. Le pire désordre à nettoyer était les tables mal imbriquées de quelqu'un. Ou (histoire vraie) quelqu'un qui a mis des éléments DIV autour de tous ses éléments TR "pour la classe CSS supplémentaire" qui lui donnerait. – Robusto

+0

Malheureusement, je suis d'accord. HTML "valide" en termes de 100% conforme W3C est un peu exagéré. Certes, tous les tags doivent être fermés, et être cohérent avec les meilleures pratiques est toujours bon, mais je n'ai jamais eu de javascript échoué sur moi parce que j'ai raté " " Heh. – cazlab

+0

Salut merci pour votre réponse. Cela signifie-t-il que DOCTYPE, XHTML ou HTML n'affecte pas vraiment le fonctionnement de JavaScript? –

2

je suis en désaccord avec le aboveresponses: J'ai eu des moments très mauvais chasse par des bugs javascript apparents avant je me suis souvenu de validate la page que je travaillais. Dès que j'ai corrigé les erreurs flagrantes, les scripts ont fonctionné comme prévu.

Le problème le plus évident (pas que je l'ai connu, parce que je regarde déjà pour cela): avoir deux éléments avec le même attribut id, et essayer de faire votre script qui dépend de celui de travailler comme prévu :)

Même s'il est peut-être vrai que le niveau de validation requis est plutôt bas, lorsque vous vous tordez la tête parce que votre site Web ne fonctionne pas et que vous ne savez pas pourquoi, vous vous en souviendrez.

+1

Bien que je ne sois pas en désaccord avec @cletus, je suis d'accord avec votre point large. Mais cela semble être le point sur lequel Cletus fait allusion: JS/CSS fonctionne sur le DOM, html constitue la base du DOM. Donc, si le DOM est mal formé -de invalide (x) html- alors js/css ne fonctionnera pas nécessairement (ou fonctionnera comme prévu).Je voterais, mais je suis déjà hors de vote pour la journée. =/ –

+0

Eh bien, si la question est "faire des erreurs html/css négligeables arrêtez js de travailler", alors Cletus a raison. Bien que les erreurs CSS peuvent être très impitoyables. Mais dans le cas général, ce n'est pas le cas. C'est beaucoup moins cher et plus facile de vérifier votre code HTML et CSS pour la validité. C'est moins cher (mais plus difficile) de construire des fichiers html et css valides. Je ne parle pas des niveaux de validité de zealot, mais de s'assurer que l'arbre DOM est valide et qu'il n'y a pas d'erreur css. –