Bien que XHTML soit obsolète, son influence sur le codage HTML persiste. De nombreux développeurs adhèrent sans le savoir aux pratiques XHTML lors de l'écriture de HTML. Cet article clarifie les distinctions entre les deux approches.
Html, xhtml et le retour en arrière
L'évolution est simple: HTML a dominé les années 1990, XHTML dans les années 2000, et nous sommes revenus à HTML dans les années 2010. Cela se reflète dans les dates de publication des spécifications: HTML 1 (1992), HTML 2.0 (1995), HTML 3.2 (1997), HTML 4.01 (1999); XHTML 1.0 (2000), XHTML 1.1 (2001); HTML5 (2007).
La montée en puissance de XHTML a co?ncidé avec la croyance généralisée dans la domination de XML. Cela a conduit à l'adoption du codage HTML de style XHTML.
L'ombre persistante de xhtml
La section "Différences avec HTML 4" de XHTML 1.0 détaille ses principales distinctions:
- Documents bien formés: XHTML exige des documents bien formés.
- Noms d'élément minuscule et d'attribut: les noms d'élément et d'attribut doivent être minuscules.
- étiquettes de fin requises: les éléments non vides nécessitent des balises de fin.
- CITATION OBLATIVE DES VALEURS D'ATTRIBUT: Les valeurs d'attribut doivent toujours être citées.
- Aucune minimisation d'attribut: la minimisation des attributs n'est pas prise en charge.
- éléments vides fermés: les éléments vides ont besoin de balises de fermeture.
- Manipulation de l'espace blanc conforme aux XML: les espaces blancs dans les valeurs d'attribut suit les règles XML.
- Les sections CDATA pour le script et le style: les éléments de script et de style nécessitent des sections CDATA.
- Aucune exclusion SGML: les exclusions de SGML ne sont pas autorisées.
- Préférence d'attribut
id
: les éléments avecid
et les attributsname
doivent principalement utiliserid
. - Attributs sensibles à la casse: les attributs avec des ensembles de valeurs prédéfinis sont sensibles à la casse.
- Entités hexadécimales minuscules références: les références en entités hexadécimales doivent être minuscules.
De nombreux développeurs, sans le savoir, suivent toujours la plupart de ces règles, même si XHTML est dépassé. Certains sont même devenus des ?meilleures pratiques? per?ues pour HTML.
Embrassant le véritable esprit de HTML
Pour contraster, annulions les règles imposées par XHTML (à l'exclusion des aspects liés au SGML, car HTML ne s'appuie plus sur SGML):
- Document bien formé: les documents peuvent ne pas être bien formés.
- Sensibilité à la casse: les noms d'élément et d'attribut peuvent être supérieurs ou minuscules.
- Tags finaux facultatifs: les balises finales pour les éléments non vides sont facultatifs.
- Quotation facultative: les valeurs d'attribut peuvent être non déposées.
- Minimisation des attributs: la minimisation des attributs est autorisée.
- éléments vides non clos: les éléments vides ne nécessitent pas de balises de fermeture.
- Manipulation des espaces: les espaces blancs dans les valeurs d'attribut ne sont pas strictement conformes aux XML.
- Sections CDATA: les sections CDATA pour le script et le style sont facultatives.
- Attributs
id
/name
: L'utilisation des attributsid
etname
n'est pas restreinte. - La sensibilité à la caisse des attributs: les attributs avec des ensembles de valeurs prédéfinis ne sont pas sensibles à la casse.
- Références en entités hexadécimales: le cas des références en entités hexadécimales n'est pas limitée.
Simplifier, se concentrer sur les aspects les plus pertinents:
- Les balises facultatives: les balises de démarrage et de fin sont facultatives.
- éléments vides non clos: les éléments vides n'ont pas besoin de balises de fermeture.
- Cas des noms: les noms d'élément et d'attribut peuvent être supérieurs ou minuscules.
- Quotes facultatives: les valeurs d'attribut peuvent être non déposées.
- Minimisation des attributs: la minimisation des attributs est prise en charge.
Bien que la résilience de HTML permette un code non valide, les meilleures pratiques mettent l'accent sur le HTML valide et bien formé. Par conséquent, les "documents peuvent ne pas être bien formés" sont ignorés. L'essence de la voie HTML devient:
- Les balises facultatives: les balises de démarrage et de fin ne sont pas toujours nécessaires.
- éléments vides non clos: les éléments vides n'ont pas besoin d'être fermés.
- Noms insensibles à cas: les noms d'élément et d'attribut peuvent être en minuscules ou en majuscules.
- Quotes facultatives: les valeurs d'attribut ne peuvent pas toujours être citées.
- Minimisation des attributs: la minimisation des attributs est prise en charge.
Exemples pratiques
Xhtml vs. html:
Xhtml:
<p> Exemple de paragraphe.</p>
- Article 1
- Article 2
Lien
HTML:
<p> Exemple de paragraphe. </p>
- Article 1
- Article 2
Lien
HTML permet des balises et des attributs majuscules, des valeurs d'attribut non citées (en cas de sécurité) et des attributs minimisés.
L'approche HTML moderne
Une approche HTML moderne devrait prioriser:
- HTML valide et sémantique: valider votre HTML et assurer l'exactitude sémantique.
- Style de codage cohérent: choisissez un style cohérent pour le bo?tier (supérieur ou minuscule) et la citation d'attribut.
- Minimalisme: utilisez le HTML au minimum, en s'appuyant sur CSS et JavaScript pour la présentation et le comportement. Tirez parti des balises facultatives, de la fermeture des éléments vides, des valeurs d'attribut par défaut et de la minimisation des attributs le cas échéant.
Des outils comme html-minifier
peuvent aider à optimiser le HTML. La redécouvrir la vraie nature du HTML, indépendamment de l'influence de XML, est la clé du développement Web moderne.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

AutoPrefixer est un outil qui ajoute automatiquement les préfixes des fournisseurs aux attributs CSS en fonction de la portée du navigateur cible. 1. Il résout le problème de maintenir manuellement les préfixes avec des erreurs; 2. Travaillez le formulaire de plug-in PostCSS, analyse CSS, analysez les attributs qui doivent être préfixés et générer du code en fonction de la configuration; 3. Les étapes d'utilisation incluent l'installation de plug-ins, la définition de la liste de navigateurs et leur permettant dans le processus de construction; 4. Les notes ne comprennent pas manuellement les préfixes, le maintien des mises à jour de la configuration, les préfixes pas tous des attributs, et il est recommandé de les utiliser avec le préprocesseur.

TOCREATESTICKYHEADERSERSANDFOOTERS WITHCSS, USEPOSITION: StickyforhederswithTopValueAndz-Index, assurant leparentContainerson’trestrictit.1.Forstickyheders: SetPosition: Sticky, Top: 0, Z-index, AndbackgroundColor.2

Il existe trois fa?ons de créer un rotateur de chargement CSS: 1. Utilisez le rotateur de base des frontières pour obtenir une animation simple via HTML et CSS; 2. Utilisez un rotateur personnalisé de plusieurs points pour atteindre l'effet de saut à travers différents temps de retard; 3. Ajoutez un rotateur dans le bouton et basculez les classes via JavaScript pour afficher l'état de chargement. Chaque approche souligne l'importance des détails de conception tels que la couleur, la taille, l'accessibilité et l'optimisation des performances pour améliorer l'expérience utilisateur.

Mobile-FirstcssDesigrequequetsettingTheViewportMetatag, UsingrelativeUnits, StylingFromsMallScreensup, OptimizingTypographicAndTouchtarget.First, addtiControlsaling.second, use%, em, orreminsteadofpixel

Pour créer une disposition de grille réactive intrinsèque, la méthode principale consiste à utiliser le mode répétition de CSSGrid (Auto-Fit, Minmax ()); 1. Définir la grille-template-colonnes: répéter (Auto-Fit, Minmax (200px, 1fr)) pour laisser le navigateur ajuster automatiquement le nombre de colonnes et limiter les largeurs minimales et maximales de chaque colonne; 2. Utiliser l'espace pour contr?ler l'espacement de la grille; 3. Le conteneur doit être réglé sur des unités relatives telles que la largeur: 100%, et utiliser la taille de la bo?te: Border-Box pour éviter les erreurs de calcul de la largeur et les centrer avec la marge: auto; 4. Définissez éventuellement la hauteur de la ligne et l'alignement du contenu pour améliorer la cohérence visuelle, comme la ligne

Pour rendre l'intégralité de la disposition de la grille centrée dans la fenêtre, elle peut être réalisée par les méthodes suivantes: 1. Utilisez la marge: 0Auto pour atteindre le centrage horizontal, et le conteneur doit être défini pour définir la largeur fixe, qui convient à la mise en page fixe; 2. Utilisez Flexbox pour définir les propriétés de justification et d'alignement des éléments dans le récipient extérieur, et combinez la hauteur min: 100VH pour atteindre le centrage vertical et horizontal, qui convient aux scénarios d'affichage plein écran; 3. Utilisez la propriété Place-Items de CSSGrid pour se concentrer rapidement sur le conteneur parent, ce qui est simple et a un bon soutien des navigateurs modernes, et en même temps, il est nécessaire de garantir que le conteneur parent a une hauteur suffisante. Chaque méthode a des scénarios et des restrictions applicables, choisissez simplement la solution appropriée en fonction des besoins réels.

FeatureSectionIncSsusing @ supportScheCkSifabrowSerSupportsaSaspecificfEATUREBOreApplyingreatedStyles.1.ituseSConditionalcSsblocksbasedOnproperty-Valuepraire, telshas @ supports (affichage: Grid).

Pour faire face à la compatibilité du navigateur CSS et aux problèmes de préfixe, vous devez comprendre les différences de prise en charge du navigateur et utiliser raisonnablement les préfixes des fournisseurs. 1. Comprendre les problèmes communs tels que Flexbox et le support de la grille, Position: Sticky Invalid et les performances d'animation sont différentes; 2. Vérifier l'état du support de la fonction de confirmation de Caniuse; 3. Utilisez correctement -webkit-, -moz-, -ms-, -o- et autres préfixes du fabricant; 4. Il est recommandé d'utiliser AutopRefixer pour ajouter automatiquement les préfixes; 5. Installez PostCSS et configurez le navigateur pour spécifier le navigateur cible; 6. Gérer automatiquement la compatibilité pendant la construction; 7. Les fonctionnalités de détection modernizr peuvent être utilisées pour les anciens projets; 8. Pas besoin de poursuivre la cohérence de tous les navigateurs,
