Question

Ceci est une question assez académique. Je me demande comment le navigateur est mis en œuvre comme dans quelle structure de données ou d'un algorithme est utilisé pour mapper un sélecteur CSS à un élément DOM particulier. Est-il accompli par une table de hachage? COMMEnT nœud enfant DOM sait que le style appliqué à la société mère applique également à lui-même, etc. J'ai regardé le centre des développeurs Mozilla n'ont pas trouvé quoi que ce soit. Tous les livres ou sur documentation le sujet serait très apprécié ... merci!

Était-ce utile?

La solution

assortis des réponses question « qui correspondent sélecteurs noeud donné », et non « qui noeuds correspondent à un sélecteur ». Cela vous permet d'évaluer simplement chaque partie d'un sélecteur contre noeud courant (comparer nom / ID / classe de nœud). Decendant combinateur et l'héritage est réalisé par balayage de noeuds parents.

Si vous êtes intéressé ce qui se passe à côté, blog WebKit avait belle série:

Autres conseils

Vous mentionnez Mozilla. Il est certainement plus facile de répondre à votre question dans le cadre d'une mise en œuvre concrète en particulier, plutôt que la notion abstraite de toutes les implémentations possibles.

  

[W] structure de données de chapeau ou d'un algorithme est utilisé pour cartographier un sélecteur CSS à un élément DOM particulier ... il est accompli grâce à une table de hachage?

Je suppose que la réponse directe à votre question, pour FF2, est susceptible d'être dans le « Hashtable » donne 111 résultats dans 7 fichiers.

Je suis convaincu que hashage sont largement associés à certains des processus impliqués dans le rendu des styles CSS.

Donc, la réponse courte à votre question est: « Oui, mais il y a plus à ce que les tables de hachage juste. »

W3C fournit une approche générale du point de vue de la définition que je trouve d'information:

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