De sorte que si la coutume attributs HTML ne sont pas valides XHTML?
Je sais que c'est la raison des gens qui ne l'approuve pas, mais est-ce vraiment important? Je pense que le pouvoir qu'ils fournissent, en interaction avec le JavaScript et le stockage et l'envoi d'informations depuis et vers le serveur, l'emporte sur la validation de préoccupation. Ai-je raté quelque chose? Quelles sont les ramifications de "non valide" HTML? Et ne serait pas une définition personnalisée de les résoudre de toute façon?
- Je souhaite donc beaucoup de programmeurs n'étaient pas obsédés par la validation. C'est l'une de ces situations ont été ma première pensée est précisément "pour quoi?". La plupart des gens considèrent que le blasphème, malheureusement...
- Je suis d'accord avec vous, mais je voulais l'entendre de la contre-arguments.
- Un peu un doublon de stackoverflow.com/questions/992115/custom-attributes-yay-or-nay
- Je voudrais savoir je valide... Il me fait me sentir au chaud et floue
- La validation est agréable. Mettre votre projet au mieux des intérêts en jeu afin de le valider, c'est autre chose. Bonne fermeture des balises, une bonne syntaxe, ce sont des choses que je peux passer derrière. Jeter une solution car elle ne valide pas est une autre histoire. Il ya une raison pourquoi seulement 2 dans le top 1000 des sites web dans l'internet valider. Je préfère Faire les Choses.
- Validation de l'aide à l'accessibilité n'est-ce pas? Par exemple, la liaison, je crois (peut-être mal), que certains le sens ou le contenu peuvent être perdues lors de balises personnalisées sont utilisées.
- +1 Pour Paolo. Entreprise détermine si ou non la validation est nécessaire -- et non l'inverse.
Vous devez vous connecter pour publier un commentaire.
La ramification est que le w3c vient dans 2, 5, 10 ans et crée un attribut du même nom. Maintenant, votre page est cassé.
HTML5 va fournir un attribut de données de type juridique d'attributs personnalisés (comme les données myattr="foo"), donc peut-être que vous pourriez commencer à utiliser dès maintenant et être raisonnablement sûr de l'avenir des conflits de nom.
Enfin, vous avez peut-être oublié que la coutume est la logique de la justification de l'attribut de classe. Bien qu'il soit généralement considéré comme un attribut de style qu'il est en réalité un moyen légal pour définir des méta-propriétés d'un élément. Malheureusement, vous êtes essentiellement limitée aux propriétés booléennes qui est pourquoi HTML5 est d'ajouter les données de préfixe.
BTW, par "fondamentalement, boolean", je veux dire, en principe. En réalité, il n'y a rien pour vous arrêter à l'aide d'un élément de séparation dans votre nom de classe pour définir des valeurs personnalisées, ainsi que des attributs.
class="document docId.56 permissions.RW"
class="thingType.image"
-> pensez à cibler les.thingType.image{}
ou$('.thingType.image')
.Oui, vous pouvez légalement ajouter des attributs à l'aide de "données".
Par exemple:
Après cela, il suffit d'utiliser la dernière version de jquery pour faire quelque chose comme:
ou pour définir un attribut de données:
Et depuis jQuery fonctionne dans presque tous les navigateurs, vous ne devriez pas avoir de problèmes 😉
mise à jour
De Validation n'est pas une fin en soi, mais un outil à utiliser pour les aider à attraper des erreurs au début, et de réduire le nombre de mystérieux, de rendu et de problèmes de comportement que vos pages web peuvent être confrontés lorsqu'il est utilisé sur plusieurs types de navigateur.
L'ajout d'attributs personnalisés n'affectera pas l'une de ces questions maintenant, et il est peu probable de le faire dans l'avenir, mais parce qu'ils ne validez pas, cela signifie que lorsque vous venez à évaluer la sortie de la validation de votre page, vous devez soigneusement choisir entre les problèmes de validation de la question, et ceux qui n'en ont pas. Chaque fois que vous modifiez votre page et validez de nouveau, vous devez répéter cette opération. Si votre page valide totalement, alors vous obtenez un joli vert PASSER le message, et vous pouvez vous déplacer sur l'étape suivante de l'analyse ou de la prochaine modification doit être faite.
J'ai vu des gens obsédés par la validation de faire bien pire/les choses bizarres que d'utiliser un simple attribut personnalisé:
À mon avis, les attributs personnalisés n'a vraiment pas d'importance. Comme les autres disent, il peut être bon de regarder dehors pour les futurs ajouts d'attributs dans les normes. Mais maintenant, nous avons des données* les attributs HTML5, de sorte que nous sommes sauvés.
Ce qui compte vraiment, c'est que vous avez correctement les balises imbriquées, et correctement cité des valeurs d'attribut.
J'ai même utiliser des noms de balise (celles introduites par HTML5, comme en-tête, pied de page, etc), mais ceux-ci ont des problèmes dans IE.
En passant, je trouve souvent ironiquement comment tous ceux validation des fanatiques de l'arc en avant de Google trucs astucieux, comme iframe uploads.
Au lieu d'utiliser des attributs personnalisés, vous pouvez associer vos éléments HTML avec les attributs à l'aide de JSON:
Et comme pour les ramifications, voir SpliFF, la réponse de.
Stocker plusieurs valeurs dans l'attribut de classe n'est pas le bon code d'encapsulation et juste un alambiqué hack façon de faire les choses. Prenez une annonce personnalisée des rotateurs, par exemple, qui utilise jquery. Il est beaucoup plus propre sur la page pour faire
et laissez quelques jquery simple code faire le travail à partir d'ici.
Tout développeur ou concepteur de sites web peut maintenant travailler sur l'annonce de la coiffe et de modifier les valeurs de ce lorsque demandé sans trop tarder.
De revenir à projet un an plus tard, ou à venir en un seul et où le développeur précédent split et est allé sur une île quelque part dans le pacifique peut être l'enfer à essayer de comprendre les intentions lorsque le code est écrit en clair et cryptées, comme ceci:
Lorsque nous écrire du code en c# et en d'autres langues, nous n'avons pas d'écrire du code en mettant toutes les propriétés personnalisées dans une propriété comme un espace délimité par des cordes et finissent par avoir à analyser cette chaîne à chaque fois que nous avons besoin de l'accès ou de l'écrire. De penser à la prochaine personne qui va travailler sur votre code.
La chose avec la validation est qu'aujourd'HUI, on ne peut pas d'importance, mais vous ne pouvez pas savoir si elle va à la matière de demain (et, par la loi de Murphy, il SERA question demain).
C'est juste mieux de choisir un futur alternatif. Si elles n'existent pas (ils le font dans ce cas particulier), le chemin à parcourir est de s'inventer un futur preuve alternative.
À l'aide d'attributs personnalisés est probablement inoffensifs, mais encore, pourquoi choisir l'un de potentiellement dangereux solution juste parce que vous pensez (vous ne pouvez jamais être sûr), il ne cause aucun préjudice?. Il pourrait être intéressant d'en discuter si l'avenir de la preuve alternative était trop coûteux ou difficile à gérer, mais ce n'est certainement pas le cas.
Vieille discussion mais néanmoins; à mon avis, depuis le html est un mark-up et non pas un langage de programmation, elle doit toujours être interprétée avec la clémence pour les mark-up "erreurs". Un navigateur est parfaitement en mesure de le faire. Je ne pense pas que ce sera et devrait changer à jamais. Par conséquent, la seule pratique d'importance des critères, c'est que votre code html sera affiché correctement par la plupart des navigateurs et continuera de le faire dans quelques années. Après ce délai, votre code html est probalbly être repensé, de toute façon.
Juste pour ajouter mon ingrédient pour le mélange, la validation est également important lorsque vous avez besoin de créer du contenu qui peut/pourrait être post-traitées à l'aide d'outils automatisés. Si votre contenu est valide, on peut très facilement convertir balisage d'un format à un autre. Par exemple, en faisant valide XHTML XML avec un schéma spécifique est Beaucoup plus facile lors de l'analyse de données que vous savez et que vous pouvez vérifier à suivre prévisible format.
J'ai, par exemple que mon contenu soit valide XHTML parce que très souvent, il est converti en XML pour divers travaux et ensuite converti en arrière sans perte de données ou inattendu de rendu des résultats.
Bien cela dépend de votre client/patron/etc .. ont-ils exiger que ce soit de la validation XHTML?
Certaines personnes disent qu'il ya beaucoup de solutions et, en fonction du sceneraio, ils peuvent fonctionner à merveille. Cela inclut l'ajout de classes, en tirant parti de la
rel
attribut, et quelqu'un qui a même écrit leur propre analyseur à l'extrait de JSON à partir des commentaires HTML.HTML5 fournit un moyen standard pour ce faire, le préfixe de vos attributs personnalisés avec des "données". Je ne recommande pas de faire cela maintenant, de toute façon, comme il y a une chance que vous pourriez utiliser un attribut qui sera utilisé en bas de la piste dans la norme XHTML.
À l'aide de HTML non standard pourrait rendre le navigateur le rendu de la page en "mode quirks", auquel cas certaines autres parties de la page peut s'afficher différemment, et d'autres choses comme de positionnement peuvent être légèrement différentes. À l'aide d'une définition personnalisée peut contourner ce problème, cependant.
Car ils ne sont pas standard, vous n'avez aucune idée de ce qui pourrait arriver, ni maintenant, ni dans le futur. Comme d'autres l'ont dit W3C pourrait démarrer à l'aide de ces mêmes noms dans l'avenir. Mais ce qui est encore plus dangereux, c'est que vous ne savez pas ce que les développeurs du navigateur "xxx" ont fait lorsqu'ils rencontrent-ils.
Peut-être que la page est affichée en mode quirks, peut-être que la page n'a pas rendu à tous sur quelque obscure navigateur mobile, peut-être que le navigateur est une fuite de mémoire, peut-être un tueur de virus va s'étouffer sur votre page, etc, etc, etc.
Je sais que suivant les normes religieux pourrait sembler comme du snobisme. Cependant, une fois que vous avez rencontré des problèmes en raison de ne pas les suivre, vous avez tendance à arrêter de penser comme ça. Cependant, il est alors souvent trop tard, et vous avez besoin pour démarrer votre application à partir de zéro avec un cadre différent...
Je pense que les développeurs de valider juste pour valider, mais il y a quelque chose à dire pour le fait qu'il garde le balisage propre. Cependant, parce que chaque (exagération attention!) le navigateur affiche tout différemment, il n'y a vraiment pas de norme. Nous essayons de suivre les normes, car elle nous fait sentir que nous avons au moins une certaine direction. Certaines personnes affirment que le maintien de code standard permettra d'éviter les problèmes et les conflits dans l'avenir. Mon avis: Vis que personne ne met en œuvre les normes correctement et complètement, aujourd'hui, de toute façon, pourrait tout aussi bien supposer tout votre code échoue finalement. Si cela fonctionne, il fonctionne, l'utiliser, à moins que son désordre ou votre juste essayer d'ignorer les normes de la coller au W3C ou quelque chose. Je pense qu'il est important de se rappeler que les normes sont mises en œuvre très lentement, a le web a tout changé beaucoup dans 5 ans. Je suis sûr que quelqu'un va avoir de nombreuses années d'avis quand ils en ont besoin pour résoudre un conflit potentiel. Aucune raison de plan pour assurer la compatibilité des normes dans l'avenir, lorsque vous ne pouvez même pas compter sur les normes d'aujourd'hui.
J'oubliais, si votre code ne valide pas les 10 bébés chatons vont mourir. Êtes-vous un chaton killer?
Jquery .html(balisage) ne fonctionne pas si balisage est pas valide.
Validation
Vous ne devriez pas avoir besoin des attributs personnalisés pour fournir de validation. Une meilleure approche serait d'ajouter la validation basée sur les champs tâche réelle.
Attribuer une signification à l'aide de classes. J'ai les noms de classe comme:
date
(Dates)zip
(Zip code)area
(Zones)ssn
(Numéro de sécurité sociale)Exemple de balisage:
Exemple javascript (avec jQuery):
Si vous avez besoin spécial validateurs pour un certain scénario ou vous venez d'inventer de nouvelles classes (ou utilisez sélecteurs) pour votre
cas particulier:
Exemple pour vérifier si les deux mots de passe correspondent:
(Cette approche fonctionne assez homogène avec les deux jQuery de validation et de la mvc .net framework et probablement d'autres aussi)
Bonus: Vous pouvez attribuer plusieurs classes séparés par un espace class="ssn personnalisés personnalisés-deux"
L'envoi d'informations "depuis et vers le serveur"
Si vous avez besoin de passer des données à l'arrière, utilisez
<input type="hidden" />
. Ils fonctionnent hors de la boîte.(Assurez-vous que vous ne transmettez pas de données sensibles avec des entrées, car ils peuvent être modifiés par l'utilisateur avec presque aucun effort à tous)