Question

Dans ma classe, je jouais et j'ai découvert que CSS fonctionne avec des éléments inventés.

Exemple:

imsocool {
    color:blue;
}
<imsocool>HELLO</imsocool>

Lorsque mon professeur m'a vu pour la première fois l'utiliser, il a été un peu surpris que des éléments inventés aient fonctionné et recommandé de changer tout simplement tous mes éléments composés en paragraphes avec des identifiants.

Pourquoi mon professeur ne veut-il pas que j'utilise des éléments inventés? Ils fonctionnent efficacement.

De plus, pourquoi ne savait-il pas que des éléments inventés existent et travaillent avec CSS. Sont-ils rares?

Était-ce utile?

La solution

Pourquoi CSS fonctionne-t-il avec de faux éléments?

(La plupart) les navigateurs sont conçus pour être (dans une certaine mesure) compatibles avec les futurs ajouts à HTML. Les éléments non reconnus sont analysés dans le DOM, mais n'ont pas de sémantique ou de rendu par défaut spécialisé qui leur sont associés.

Lorsqu'un nouvel élément est ajouté aux spécifications, parfois CSS, JavaScript et Aria peuvent être utilisés pour fournir les mêmes fonctionnalités dans les navigateurs plus âgés (et les éléments doivent apparaître dans le DOM pour que ces langues puissent les manipuler pour ajouter cette fonctionnalité ).

(Il y a une spécification pour éléments personnalisés, mais ils ont des exigences de dénomination spécifiques et nécessitent une inscription à l'aide de JavaScript.)

Pourquoi mon professeur ne veut-il pas que j'utilise des éléments inventés?

  • Ils ne sont pas autorisés par la spécification HTML
  • Ils pourraient entrer en conflit avec les futurs éléments standard avec le même nom
  • Il existe probablement un élément HTML existant qui est mieux adapté à la tâche

Aussi; Pourquoi ne savait-il pas que des éléments inventés existaient et travaillaient avec CSS. Sont-ils rares?

Oui. Les gens ne les utilisent pas parce qu'ils ont les problèmes ci-dessus.

Autres conseils

Tl; dr

  • Les balises personnalisées ne sont pas valides en HTML. Cela peut entraîner des problèmes de résolution.
  • Rend le développement futur plus difficile car le code n'est pas portable.
  • Le HTML valide offre de nombreux avantages tels que le référencement, la vitesse et le professionnalisme.

Longue réponse

Il y a Quelques arguments Ce code avec des balises personnalisés est plus utilisable.

Cependant, cela conduit à un HTML non valide. Ce qui n'est pas bon pour votre site.

Le point de CSS / HTML valide | Stackoverflow

  • Google le préfère donc c'est bon pour le référencement.
  • Cela rend votre page Web plus susceptible de fonctionner dans les navigateurs que vous n'avez pas testés.
  • Cela vous rend plus professionnel (au moins certains développeurs)
  • Les navigateurs conformes peuvent rendre [HTML valide plus rapidement
  • Il souligne un tas de bugs obscurs que vous avez probablement manqués qui affectent les choses que vous n'avez probablement pas testées, par exemple le codepage ou l'ensemble de langue de la page.

Pourquoi valider | W3C

  • Validation comme outil de débogage
  • Validation en tant que vérification de la qualité à l'épreuve du futur
  • La validation assouplit la maintenance
  • La validation aide à enseigner les bonnes pratiques
  • La validation est un signe de professionnalisme

Yada (encore une autre réponse (différente))

Edit: veuillez consulter le commentaire de Boltclock ci-dessous concernant l'élément Type vs Tag vs. Je ne m'inquiète généralement pas pour la sémantique, mais son commentaire est très approprié et informatif.

Bien qu'il y ait déjà un tas de bonnes réponses, vous avez indiqué que votre professeur vous a incité à poster cette question afin qu'il semble que vous l'êtes (formellement) à l'école. Je pensais que j'expliquerais un peu plus en profondeur non seulement sur CSS mais aussi le mécanique des navigateurs Web. Selon Wikipédia, "CSS est une langue de feuille de style utilisée pour décrire ... un document écrit en un Langue de balisage. "(J'ai ajouté l'accent mis sur" A ") avis qu'il ne dit pas" écrit en html "encore moins une version spécifique de HTML. CSS peut être utilisé sur HTML, XHTML, XML, SGML, XAML, etc. . Bien sûr, vous avez besoin de quelque chose qui va rendre Chacun de ces types de documents qui appliquera également le style. Par définition, CSS ne connaître / comprendre / se soucier de Tags de langage de balisage spécifiques. Ainsi, les balises peuvent être "invalides" en ce qui concerne le HTML, mais il n'y a pas de concept de balise / élément / type "valide" dans CSS.

Moderne Les navigateurs visuels ne sont pas des programmes monolithiques. Ils sont un amalgame de différents "moteurs" qui ont des emplois spécifiques à faire. À le strict minimum Je peux penser à 3 moteurs, au moteur de rendu, au moteur CSS et au moteur JavaScript / VM. Je ne sais pas si l'analyseur fait partie du moteur de rendu (ou vice versa) ou s'il s'agit d'un moteur séparé, mais vous avez l'idée.

Que ce soit ou non un visuel navigateur (D'autres ont déjà abordé le fait que l'écran lecteurs Pourraient avoir d'autres défis concernant les étiquettes non valides) applique le formatage dépend de la question de savoir si l'analyseur laisse la balise "non valide" dans le document et ensuite si le moteur de rendu applique des styles à cette balise. Puisqu'il rendrait plus difficile le développement / maintenir, les moteurs CSS ne sont pas écrits pour comprendre Ce "Il s'agit d'un document HTML, voici donc la liste des balises / éléments / types valides". Les moteurs CSS trouvent simplement Tags / éléments / types Et puis dites au moteur de rendu: "Voici les styles que vous devez appliquer." Que le moteur de rendu décide ou non d'appliquer les styles.

Voici un moyen facile de penser au de base Débit du moteur à moteur: Parser -> CSS -> Rendu. En réalité, c'est beaucoup plus alambiqué, mais c'est assez bon pour les débutants.

Cette réponse est déjà trop longue, donc je finirai là.

Les éléments inconnus sont traités comme divS par les navigateurs modernes. C'est pourquoi ils fonctionnent. Cela fait partie de la norme HTML5 venant en sens inverse qui introduit une structure modulaire à laquelle de nouveaux éléments peuvent être ajoutés.

Dans les navigateurs plus âgés (je pense que IE7-), vous pouvez appliquer un trip javascript, après quoi ils fonctionneront également.

Voici une question connexe J'ai trouvé en cherchant un exemple.

Voici une Question sur le correctif javascript. Il s'avère que c'est en effet IE7 qui ne prend pas en charge ces éléments hors de la boîte.

Aussi; Pourquoi ne savait-il pas que des étiquettes inventées existaient et travaillaient avec CSS. Sont-ils rares?

Oui, tout à fait. Mais surtout: ils ne servent pas de but supplémentaire. Et ils sont nouveaux dans HTML5. Dans les versions antérieures de HTML, une étiquette inconnue n'était pas valide.

De plus, les enseignants semblent parfois avoir des lacunes dans leurs connaissances. Cela peut être dû au fait qu'ils doivent enseigner aux étudiants les bases sur un sujet donné, et cela ne porte pas vraiment ses fruits pour connaître tous les tenants et aboutissants et être vraiment à jour. J'ai eu une fois de la détention parce qu'un enseignant pensait que j'avais programmé un virus, juste parce que je pouvais faire un ordinateur jouer de la musique en utilisant le play Commande dans gwbasic. (Histoire vraie, et oui, il y a longtemps). Mais quelle que soit la raison, je pense que le conseil de ne pas utiliser d'éléments de garde est un bon.

En fait, vous pouvez utiliser des éléments personnalisés. Voici la spécification W3C sur ce sujet:

http://w3c.github.io/webcomponents/spec/custom/

Et voici un tutoriel expliquant comment les utiliser:

http://www.html5rocks.com/en/tutorials/webcomponents/customElements/

Comme indiqué par @Quetin: il s'agit d'un projet de spécification au début du développement, et qu'il impose des restrictions sur ce que les noms d'éléments peuvent être.

Il y a quelques choses sur les autres réponses qui sont soit mal formulées, soit peut-être un peu incorrectes.

Faux (ish): les éléments HTML non standard ne sont "pas autorisés", "illégaux" ou "invalides".

Pas nécessairement. Ils sont "non conformes". Quelle est la différence? Quelque chose peut "ne pas se conformer" et toujours "autorisé". Le W3C ne va pas envoyer la police HTML chez vous et vous transporter.

Le W3C a laissé les choses de cette façon pour une raison. La conformité et les spécifications sont définies par une communauté. Si vous avez une communauté plus petite consommant du HTML à des fins plus spécifiques et qu'ils sont tous d'accord sur de nouveaux éléments dont ils ont besoin pour faciliter les choses, ils peuvent avoir ce que le W3C appelle comme "Autres spécifications applicables". (C'est un brut sur la simplification, évidemment, mais vous avez l'idée)

Cela dit, des validateurs stricts déclareront que vos éléments non standard seront "invalides". Mais c'est parce que le travail du validateur consiste à assurer la conformité à toutes les spécifications pour lesquelles elle valide, et non pour assurer la "légalité" navigateur ou pour utilisation.

Faux (ish): éléments HTML non standard sera entraîner des problèmes de rendu

Peut-être, mais peu probable. (remplacer "Will" par "pourrait") La seule façon dont cela devrait entraîner un problème de rendu est que votre élément personnalisé entre en conflit avec une autre spécification, tel qu'une modification de la spécification HTML ou une autre spécification étant honorée dans le même système (comme SVG, mathématiques ou quelque chose de personnalisé).

En réalité, La raison pour laquelle CSS peut styliser des étiquettes non standard est parce que la spécification HTML États clairement ce:

Les agents des utilisateurs doivent traiter les éléments et les attributs qu'ils ne comprennent pas comme sémantiquement neutre; les laisser dans le DOM (pour les processeurs DOM) et les styliser selon CSS (pour les processeurs CSS), mais ne pas déduire de sens d'eux

Noter: Si vous souhaitez utiliser une balise personnalisée, n'oubliez pas qu'un changement dans la spécification HTML à un moment ultérieur pourrait faire exploser votre style, alors soyez préparé. Il est vraiment peu probable que le W3C implémente le <imsocool> Tag, cependant.

Tags non standard et JavaScript (via le DOM)

La raison pour laquelle vous pouvez accéder et modifier des éléments personnalisés à l'aide de JavaScript est parce que le Les spécifications expliquent même comment elles devraient être gérées dans le DOM, qui est l'API (vraiment horrible) qui vous permet de manipuler les éléments de votre page.

L'interface HTMLUNKNOWNELMENT doit être utilisée pour les éléments HTML qui ne sont pas définis par cette spécification (ou d'autres spécifications applicables).

TL; DR: Conformément aux spécifications est effectuée à des fins de communication et de sécurité. La non-conforme est toujours autorisée par tout sauf un validateur, dont le seul but est d'appliquer la conformité, mais dont l'utilisation est facultative.

Par exemple:

var wee = document.createElement('wee');
console.log(wee.toString()); //[object HTMLUnknownElement]

(Je suis sûr que cela attirera les flammes, mais il y a mes 2 cents)

Selon les spécifications:

CSS

UN sélecteur de type est le nom d'un type d'élément de langue de document écrit en utilisant la syntaxe des noms qualifiés CSS

Je pensais que cela s'appelait le élément sélecteur, mais apparemment c'est en fait le taper sélecteur. La spécification continue de parler de CSS qualified names ce qui n'a pas restreint ce que sont réellement les noms. C'est-à-dire que tant que le sélecteur de type correspond à la syntaxe de nom qualifié CSS, il est techniquement correct CSS et correspondra à l'élément du document. Il n'y a pas de restriction spécifique au CSS sur les éléments qui n'existent pas dans une spécification particulière - HTML ou autrement.

Html

Il n'y a aucune restriction officielle sur l'inclusion de balises dans le document que vous souhaitez. Cependant, la documentation dit

Les auteurs ne doivent pas utiliser d'éléments, d'attributs ou d'attribut de valeurs à des fins autres que leur objectif sémantique prévu, car cela empêche le logiciel de traiter correctement la page.

Et ça dit plus tard

Les auteurs ne doivent pas utiliser d'éléments, d'attributs ou d'attribut de valeurs qui ne sont pas autorisées par cette spécification ou d'autres spécifications applicables, car cela rend beaucoup plus difficile pour que la langue soit étendue à l'avenir.

Je ne suis pas sûr que de savoir où ou si la spécification dit que les éléments inconnus sont autorisé, mais il parle du Htmlunknownelement Interface pour les éléments non reconnus. Certains navigateurs peuvent même ne pas reconnaître les éléments qui sont dans la spécification actuelle (IE8 me vient à l'esprit).

Il y a un brouillon pour les éléments personnalisés, cependant, mais je doute qu'il soit encore mis en œuvre n'importe où.

Cela est possible avec HTML5, mais vous devez prendre en considération les navigateurs plus âgés.

Si vous décidez de les utiliser, assurez-vous de commenter votre HTML !! Certaines personnes peuvent avoir du mal à comprendre ce que c'est pour qu'un commentaire puisse leur faire gagner beaucoup de temps.

Quelque chose comme ça,

<!-- Custom tags in use, refer to their CSS for aid -->

Lorsque vous créez votre propre balise / éléments personnalisés, les anciens navigateurs n'auront aucune idée de ce que c'est comme des éléments HTML5 comme nav/section.

Si vous êtes intéressé par ce concept, je recommande de le faire de la bonne façon.

Commencer

Les éléments personnalisés permettent aux développeurs Web de définir de nouveaux types d'éléments HTML. La spécification est l'une des nombreuses nouvelles primitives API atterrissant sous l'égide des composants Web, mais c'est probablement le plus important. Les composants Web n'existent pas sans les fonctionnalités déverrouillées par des éléments personnalisés:

Définir les nouveaux éléments HTML / DOM Créez des éléments qui s'étendent à partir d'autres éléments regroupent logiquement les fonctionnalités personnalisées en un seul étiquette étendent l'API des éléments DOM existants

Il y a beaucoup de choses que vous pouvez faire avec cela et cela rend votre script magnifique comme cet article aime le dire. Éléments personnalisés définissant de nouveaux éléments dans HTML.

Alors récapitulons,

Avantages

  • Très élégant et facile à lire.

  • C'est bien de ne pas en voir autant divs. : P

  • Permet une sensation unique au code

Les inconvénients

  • Le soutien plus âgé du navigateur est une chose forte à considérer.

  • D'autres développeurs peuvent ne pas comprendre quoi faire s'ils ne savent pas sur les balises personnalisées. (Expliquez-leur ou ajoutez des commentaires pour les informer)

  • Enfin, une chose à prendre en considération, mais je ne suis pas sûr, ce sont les éléments de bloc et de ligne. En utilisant des balises personnalisées, vous allez finir par écrire plus de CSS en raison de la balise personnalisée n'aura pas un côté par défaut.

Le choix dépend entièrement de vous et vous devez le baser sur ce que le projet demande.

Mise à jour du 1/2/2014

Voici un article très utile que j'ai trouvé et j'ai pensé que je partagerais, Éléments personnalisés.

Apprenez la technologie Pourquoi des éléments personnalisés? Les éléments personnalisés permettent aux auteurs de définir leurs propres éléments. Les auteurs associent le code JavaScript aux noms de balises personnalisés, puis utilisent ces noms de balises personnalisés comme ils le feraient n'importe quelle balise standard.

Par exemple, après avoir enregistré un type spécial de bouton appelé Super-Button, utilisez le super bouton comme ceci:

Les éléments personnalisés sont toujours des éléments. Nous pouvons les créer, les utiliser, les manipuler et les composer aussi facilement que n'importe quelle norme ou aujourd'hui.

Cela semble être une très bonne bibliothèque à utiliser, mais j'ai remarqué qu'il n'avait pas réussi le statut de construction de Window. C'est aussi dans un pré-alpha, je crois, donc je garderais un œil sur ce pendant qu'il se développe.

Pourquoi ne veut-il pas que vous les utilisiez? Ils ne sont ni communs ni faisant partie de la norme HTML5. Techniquement, ils ne sont pas autorisés. Ils sont un hack.

Mais je les aime moi-même. Vous pourriez être intéressé par XHTML5. Il vous permet de définir vos propres balises et de les utiliser dans le cadre de la norme.

De plus, comme d'autres l'ont souligné, ils sont invalides et donc non portables.

Pourquoi ne savait-il pas qu'ils existent? Je ne sais pas, sauf qu'ils ne sont pas communs. Peut-être qu'il ne savait tout simplement pas que vous le pouviez.

Les balises inventées ne sont presque jamais utilisées, car il est peu probable qu'elles fonctionneront de manière fiable dans chaque navigateur actuel et chaque futur navigateur.

Un navigateur doit analyser le code HTML en éléments qu'il connaît, les balises inventées seront converties en autre chose pour s'adapter au modèle d'objet de document (DOM). Comme les normes Web ne couvrent pas comment gérer tout ce qui est en dehors des normes, les navigateurs Web ont tendance à gérer le code non standars de différentes manières.

Le développement Web est assez délicat avec un tas de navigateurs différents qui ont leurs propres bizarreries, sans ajouter un autre élément d'incertitude. Le meilleur parié pour s'en tenir à des choses qui sont réellement dans les normes, c'est ce que les fournisseurs de navigateurs essaient de suivre, donc cela a la meilleure chance de travailler.

Je pense que les étiquettes inventées sont tout simplement plus déroutantes ou peu claires que P avec IDS (un bloc de texte en général). Nous savons tous que AP avec un ID est un paragraphe, mais qui sait à quoi sont destinés aux balises informées? C'est du moins ma pensée. :) Par conséquent, c'est plus un problème de style / clarté que celui des fonctionnalités.

D'autres ont fait valoir d'excellents points, mais il vaut la peine de noter que si vous regardez un cadre tel que Angularjs, il existe un cas très valable pour les éléments et attributs personnalisés. Ceux-ci transmettent non seulement une meilleure signification sémantique au XML, mais ils peuvent également fournir un comportement, regarder et ressentir la page Web.

CSS est une langue de feuille de style qui peut être utilisée pour présenter des documents XML, pas seulement (x) documents HTML. Votre extrait avec les balises inventées pourrait faire partie d'un document XML légal; Ce serait un si vous l'enfermez dans un seul élément racine. Vous avez probablement déjà un <html> ...</html> autour de? Tout navigateur actuel peut afficher des documents XML.

Bien sûr, ce n'est pas un très bon document XML, il n'a pas de grammaire et d'une déclaration XML. Si vous utilisez à la place un en-tête de déclaration HTML (et probablement une configuration de serveur qui envoie le type MIME correct), il serait plutôt illégal de HTML.

(X) HTML a des avantages par rapport au XML simple car les éléments ont une signification sémantique utile dans le contexte d'une présentation de page Web. Les outils peuvent fonctionner avec cette sémantique, d'autres développeurs connaissent le sens, il est moins sujet aux erreurs et mieux à lire.

Mais dans d'autres contextes, il est préférable d'utiliser CSS avec XML et / ou XSLT pour faire la présentation. C'est ce que vous avez fait. Comme ce n'était pas votre tâche, vous ne saviez pas ce que vous faisiez, et HTML / CSS est la meilleure façon d'aller la plupart du temps, vous devriez vous y tenir dans votre scénario.

Vous devez ajouter un en-tête HTML (x) à votre document afin que les outils puissent vous donner des messages d'erreur significatifs.

... Je change simplement toutes mes balises composées en paragraphes avec des identifiants.

En fait, je conteste sa suggestion sur la façon de le faire correctement.

  1. UN <p> La balise est pour les paragraphes. Je vois des gens l'utiliser tout le temps au lieu d'une div - simplement à des fins d'espacement ou parce qu'elle semble plus douce. Si ce n'est pas un paragraphe, ne l'utilisez pas.

  2. Vous n'avez pas besoin ou ne souhaitez pas coller ID sur tout, sauf si vous devez le cibler spécifiquement (par exemple avec JavaScript). Utilisez des cours ou simplement une div directe.

Depuis ses débuts, CSS a été conçu pour être un marquage agnostique afin qu'il puisse être utilisé avec n'importe quel langage de balisage produisant des structures DOM arbre (SVG par exemple). Toute balise conforme à name token La production est parfaitement valable dans CSS. Votre question concerne donc plutôt le HTML que le CSS lui-même.

Les éléments avec des balises personnalisés sont pris en charge par la spécification HTML5. HTML5 standardise la façon dont les éléments inconnus doivent être analysés dans le dom. Ainsi, HTML5 est la première spécification HTML qui permet des éléments personnalisés à proprement parler. Il vous suffit d'utiliser HTML5 Doctype <!DOCTYPE html> dans votre document.

À partir de noms de balises personnalisés eux-mêmes ...

Ce document http://www.w3.org/tr/custom-elements/ Recommande des balises personnalisées que vous choisissez de contenir au moins un symbole '-' (Dash). De cette façon, ils ne seront pas en conflit avec les futurs éléments HTML. Par conséquent, vous feriez mieux de changer votre doc en quelque chose comme ceci:

<style>
so-cool {
    color:blue;
}
</style>

<body>
    <so-cool>HELLO</so-cool>
</body> 

Étonnamment, personne (y compris mon passé) n'a mentionné l'accessibilité. Une autre raison pour laquelle l'utilisation de balises valides au lieu de celles personnalisées est la compatibilité avec la plus grande quantité de logiciels, y compris les lecteurs d'écran et d'autres outils dont les gens ont besoin à des fins d'accessibilité. De plus, les lois sur l'accessibilité comme Wai exiger Faire des sites Web accessibles, ce qui signifie généralement les obliger à utiliser un balisage valide.


Apparemment, personne ne l'a mentionné, donc je le ferai.

Ceci est un sous-produit de guerres de navigateur.

Dans les années 1990, lorsque Internet a commencé à aller courant, la concurrence a augmenté sur le marché du navigateur. Pour rester compétitif et dessiner des utilisateurs, certains navigateurs (notamment Internet Explorer) ont essayé d'être utile et «convivial» en tentant de comprendre quelles concepteurs de pages censé et donc un balisage qui est incorrect (par exemple, <b><i>foobar</b></i> Rendu correctement comme audacieux-italique).

Cela avait du sens dans une certaine mesure car si un navigateur continuait de se plaindre d'erreurs de syntaxe tandis qu'un autre a mangé tout ce que vous lui lanciez et crachant un résultat (plus ou moins), alors les gens afflueraient naturellement vers ce dernier.

Alors que beaucoup pensaient que les guerres de navigateur étaient terminées, une nouvelle guerre entre les vendeurs de navigateurs a ravivé ces dernières années depuis la libération de Chrome, Apple a recommencé à se développer et à pousser Safari, et c'est-à-dire avoir perdu sa domination. (Vous pourriez l'appeler une «guerre froide» en raison de la coopération perçue et du soutien aux normes par les vendeurs de navigateur.) Par conséquent, il n'est pas surprenant que même les navigateurs contemporains qui soi-disant Conformez-vous strictement aux normes Web, essayez en fait d'être «intelligents» et permettez un comportement d'évacuation comme celui-ci afin d'essayer d'obtenir un avantage comme auparavant.

Malheureusement, ce comportement permissif a conduit à un énorme (quelques pourrait même dire une croissance cancéreuse) de pages Web mal marquées. Parce que IE était le navigateur le plus indulgent et le plus populaire, et en raison du bafouage des normes de Microsoft, IE est devenu tristement célèbre pour encourager et promouvoir une mauvaise conception et propager et perpétuer des pages cassées.

Vous pourrez peut-être vous en sortir avec l'utilisation de bizarreries et d'exploits comme ça sur certains navigateurs pour l'instant, mais à part le puzzle ou le jeu occasionnel ou quelque chose, vous devez toujours vous en tenir normes Web Lors de la création de pages Web et de sites pour s'assurer qu'elles s'affichent correctement et les évitent de se casser (peut-être complètement ignorées) avec une mise à jour du navigateur.

Bien que les navigateurs relient généralement CSS aux balises HTML, qu'ils soient ou non valides, vous ne devriez absolument pas le faire.

Il n'y a techniquement rien de mal à cela du point de vue du CSS. Cependant, l'utilisation de balises composées est quelque chose que vous ne devriez jamais faire en HTML.

HTML est une langue de balisage, ce qui signifie que chaque balise correspond à un type spécifique d'informations.

Vos balises intitulées ne correspondent à aucun type d'informations. Cela créera des problèmes à partir de robots de web, tels que Google.

Lisez plus d'informations sur le Importance du balisage correct.

Éditer

Les Divs se réfèrent à des groupes de plusieurs éléments apparentés, destinés à être affichés sous forme de bloc et peuvent être manipulés en tant que tels.

Les portées se réfèrent à des éléments qui doivent être stylisés différemment que le contexte dans lequel ils se trouvent actuellement et qui doivent être affichés en ligne, et non comme un bloc. Un exemple est si quelques mots dans une phrase doivent être tous des plafonds.

Les balises personnalisées ne sont en corrélation d'aucune norme et donc Span / Div doit être utilisée avec les propriétés de classe / ID à la place.

Il y a très exemptions spécifiques à cela, comme JS angulaire

Bien que CSS ait une chose appelée un "sélecteur de balises", il ne sait pas vraiment ce qu'est une balise. Cela est laissé à la langue du document à définir. CSS a été conçu pour être utilisé non seulement avec HTML, mais aussi avec XML, où (en supposant que vous n'utilisez pas de DTD ou un autre schéma de validation), les balises peuvent être à peu près n'importe quoi. Vous pouvez également l'utiliser avec d'autres langues, bien que vous deviez proposer votre propre sémantique pour exactement ce à quoi des choses comme les "balises" et les "attributs" correspondent.

Les navigateurs appliquent généralement CSS à des balises inconnues en HTML, car cela est considéré comme mieux que la rupture complètement: au moins ils peuvent afficher quelque chose. Mais il est très Mauvaise pratique pour utiliser délibérément les "fausses" balises. L'une des raisons est que les nouvelles balises sont définies de temps en temps, et si l'on est défini, cela ressemble en quelque sorte à votre faux tag mais ne fonctionne pas tout à fait de la même manière, cela peut causer des problèmes avec votre site sur de nouveaux navigateurs.

Pourquoi CSS fonctionne-t-il avec de faux éléments? Parce que cela ne fait de mal à personne parce que vous n'êtes pas censé les utiliser de toute façon.

Pourquoi mon professeur ne veut-il pas que j'utilise des éléments inventés? Parce que si cet élément est défini par une spécification à l'avenir, votre élément aura un comportement imprévisible.

De plus, pourquoi ne savait-il pas que des éléments inventés existent et travaillent avec CSS. Sont-ils rares? Parce qu'il, comme la plupart des autres développeurs Web, comprend que nous ne devons pas utiliser des choses qui pourraient se casser au hasard à l'avenir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top