29 votes

Pourquoi firebug ajoute-t-il <tbody> à <table> ?

J'ai consulté le code source html, il n'y a pas de <tbody> mais lorsqu'il est consulté via firebug dans l'onglet HTML, <tbody> apparaît. Savez-vous pourquoi ?

18voto

Nickolay Points 14384

Pour résumer les excellentes explications données dans les réponses et commentaires de bobince, Kieron, Alohci et d'autres :

  1. Firebug affiche simplement le DOM de la page analysée. En raison de règles d'analyse HTML compliquées, le DOM sera "différent" (dans un certain sens) du HTML source.
  2. Dans ce cas, le TBODY dans le DOM est ajouté par l'analyseur HTML. Notez que cette analyse bizarre est limitée aux documents text/html et qu'en XHTML le DOM correspond étroitement au XML source.
    • Ce comportement a été spécifié dans HTML 4 . Le modèle de contenu (enfants autorisés) pour table es (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+) -- tr ne sont autorisés que dans les tbody ! La spécification dit que tbody La balise de début de l'article est facultative, ce qui est censé signifier que si l'analyseur HTML rencontre l'article tr directement à l'intérieur d'un table il insère le tbody balise de début omise par l'auteur.
    • Pour rendre les choses plus claires, HTML 5 définit des règles d'analyse syntaxique très détaillées, notamment pour ce cas de figure : " Lorsque le mode d'insertion est "en tableau", les tokens doivent être traités comme suit : [...] Une balise de début dont le nom de balise est l'un de : "td", "th", "tr" -> Agir comme si un jeton de balise de début dont le nom de balise est "tbody" avait été vu, puis retraiter le jeton courant."

6voto

Ce n'est pas firebug, mais firefox qui fait cela. C'est ainsi que les tableaux sont censés être écrits avec <TBODY> séparément des métadonnées comme <COLGROUP> Firefox insère simplement le <TBODY> lorsqu'il constate qu'elles sont manquantes.

3voto

Kieron Points 5096

Firefox les ajoute, car le standard le dit.

TABLE n'est pas autorisé à contenir TR directement, ils doivent être contenus dans des éléments THEAD , TFOOT o TBODY . Mais pour des raisons de simplicité et de rétrocompatibilité, la balise de début de l'élément TBODY peut être omis "lorsque le tableau ne contient qu'un seul corps de tableau et aucune section d'en-tête ou de pied de tableau" ; dans ce cas, l'élément est déduit par le navigateur.

1voto

DaRKoN_ Points 4098

Ce n'est pas ajouté par firebug, c'est ajouté par Firefox. Firebug vous donne l'aspect actuel du domaine. Si vous parcourez les différents éléments du domaine, vous remarquerez que Firefox a également ajouté certains de ses propres éléments de style.

0voto

Jitendra Vyas Points 28378

A.19. Éléments explicites

Utilisez des éléments tbody explicites dans les tableaux.

Justification : Alors que le modèle de contenu de l'élément table permet de sauter l'élément tbody, en HTML 4, cet élément est implicite. Les agents utilisateurs de HTML 4 ajouteront silencieusement cet élément, ce qui risque de perturber les scripts ou les feuilles de style.

Source : http://www.w3.org/TR/2009/NOTE-xhtml-media-types-20090116/#compatGuidelines

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X