Bonjour à tous
Une des choses qui restent de l'antiquité du web est le fait que les navigateurs vérifient plus ou moins que le code HTML respecte bien la nature des balises.
Par exemple si on écrit
Le navigateur, lors de l'analyse du HTML, remplace par
Mais depuis HTML5, on peut styler le <div> interne en display:inline ou display:inline-block et donc ce pourrait ne pas être une erreur, seulement l'analyse du HTML précède l'application du CSS, donc c'est toujours refusé.
Pour se sortir de cette situation, ou peut bien entendu remplacer <div> par <span>, mais le même problème va se poser à l'intérieur du <span>.
La solution est de mettre <div> à l'intérieur d'un <button>, car un <p> peut contenir un <button>. Noter que <button> est à ma connaissance la seule balise que le navigateur considère comme un inline-block (sans doute parce qu'originellement un <button> était inline)
Quand on utilise des balises nouvelles HTML5, on n'arrive plus très bien à s'y retrouver.
Par exemple:
1) que peut on mettre dans un <fieldset> ? Par exemple peut on écrire
a priori oui, mais je ne suis pas sûr que tous les navigateurs se comportent de la même façon.
Autre point: quelles vérifications sont appliquées lorsque l'on manipule le DOM ?
J'ai vu par exemple qu'on peut écrire
puis déplacer <aside> par manipulation du DOM
C'est ce que je faisais avant de découvrir que
marche fort bien.
Si l'essentiel du code HTML est généré dynamiquement en JavaScript, quelles sont les vérifications qui sont effectuées par le navigateur?
Connaissez vous un document clair sur ce sujet?
Merci de votre aide
Modifié par PapyJP (30 May 2020 - 17:48)
Une des choses qui restent de l'antiquité du web est le fait que les navigateurs vérifient plus ou moins que le code HTML respecte bien la nature des balises.
Par exemple si on écrit
<p>.......<div>.....</div>...</p>
Le navigateur, lors de l'analyse du HTML, remplace par
<p>...</p><div>....</div><p>...</p>
Mais depuis HTML5, on peut styler le <div> interne en display:inline ou display:inline-block et donc ce pourrait ne pas être une erreur, seulement l'analyse du HTML précède l'application du CSS, donc c'est toujours refusé.
Pour se sortir de cette situation, ou peut bien entendu remplacer <div> par <span>, mais le même problème va se poser à l'intérieur du <span>.
La solution est de mettre <div> à l'intérieur d'un <button>, car un <p> peut contenir un <button>. Noter que <button> est à ma connaissance la seule balise que le navigateur considère comme un inline-block (sans doute parce qu'originellement un <button> était inline)
Quand on utilise des balises nouvelles HTML5, on n'arrive plus très bien à s'y retrouver.
Par exemple:
1) que peut on mettre dans un <fieldset> ? Par exemple peut on écrire
<fieldset>
<ul>
<li><label...><input></li>
<li><label...><input></li>
...
</fieldset>
a priori oui, mais je ne suis pas sûr que tous les navigateurs se comportent de la même façon.
Autre point: quelles vérifications sont appliquées lorsque l'on manipule le DOM ?
J'ai vu par exemple qu'on peut écrire
<p>......</p>
<aside>...</aside>
puis déplacer <aside> par manipulation du DOM
C'est ce que je faisais avant de découvrir que
<p>.....
<button>.....
<aside>....</aside>
....</button>
....</p>
marche fort bien.
Si l'essentiel du code HTML est généré dynamiquement en JavaScript, quelles sont les vérifications qui sont effectuées par le navigateur?
Connaissez vous un document clair sur ce sujet?
Merci de votre aide
Modifié par PapyJP (30 May 2020 - 17:48)