2011-01-13 5 views
3

J'ai joué avec html5 et j'ai remarqué que parfois la page affiche mon html différemment dans le dom (vu par firebug) qu'il n'apparaît réellement dans mes fichiers html. Le résultat est un élément qui est répliqué plusieurs fois de différentes manières. Je remarque seulement ceci sur les éléments imbriqués.html5 élément se répétant bug

Par exemple:

<a href="#" class="block top-middle"> 
    <h5 class="title-top">TITLE</h5> 
    <img src=""path/to/img.png" alt="TITLE" /> 
</a><!-- .top-middle --> 

est-il de temps en temps comme déployaient:

<a class="block top-middle" href="#"> </a> 
<h5 class="title top"> 
    <a class="block top-middle" _moz-rs-heading="" href="#">TITLE/a> 
</h5> 

<a class="block top-middle" href="#"> 
    <img alt="TITLE" src="path/to/img.png"> 
</a> 

Je ne suis pas vraiment sûr de ce que la solution est, mais je voulais savoir si quelqu'un d'autre a connu glitches comme celui-ci. J'ai passé au crible chaque partie de mon code et je ne trouve rien de cassé et les pages sur lesquelles il se passe sont validées sans aucun problème. C'est particulièrement frustrant parce que cela n'arrive qu'une fois de temps en temps.

merci!

* * modifier aussi, je sais en utilisant les balises d'ancrage comme celui-ci est pas valide, mais pour autant que je suis en mesure de dire ce que je l'ai lu sur html5 est contenu wrap valide dans une ancre *

Répondre

3

Le navigateur/moteur de rendu a été créé avant l'existence de HTML 5, donc il obéit à la règle selon laquelle les ancres qui sont des éléments en ligne ne peuvent pas contenir de h5, qui sont au niveau du bloc.

Cela prend tout son sens. Je ne pense pas que vous pouvez vraiment faire autre chose que d'attendre et voir si le moteur de rendu adopte la règle HTML 5 qui permet aux ancres d'imbriquer des niveaux de bloc tels que h5 s.

EDIT: Je suppose que vous utilisez le HTML 5 Doctype, même si cela n'aura probablement pas beaucoup d'influence.

EDIT # 2: Cela a été classé comme bug, même si je pense personnellement que ce ne devrait pas être. Un moyen de contourner cela semble être l'emballage h5 dans un div.

+0

merci beaucoup, je joue avec la solution de contournement div et ça marche (parfois) je pense que la leçon apprise est d'utiliser xhtml jusqu'à ce que tous les kinks sont vraiment travaillés sur html5 – Thomas