2010-07-01 2 views
2

À titre d'exemple, imaginez que j'ai une table. Le comportement d'alignement standard (pas sûr si c'est la spécification html ou juste les navigateurs que j'utilise?) Semble être d'aligner à gauche les éléments du corps et d'aligner les éléments de la tête.Est-il inefficace de spécifier des règles par défaut pour CSS?

Donc, si je voulais que tout aligné à gauche, est-il moins efficace d'écrire

#MyTable td { 
    text-align: left; 
} 

que d'écrire

#MyTable tbody td { 
    text-align: left; 
} 

Ou il ne fait pas vraiment de différence?

Quelle est la meilleure pratique dans cette situation?

Je suppose que ma question concerne vraiment la façon dont les styles "par défaut" sont définis. Sont-ils explicitement définis par le navigateur si aucun style correspondant si trouvé dans le CSS? Ou sont-ils de véritables comportements par défaut quand aucun style n'est présent.

+0

* ajouté des tags associés à votre problème. * – galambalazs

Répondre

6

Vous pouvez voir le style par défaut et le style calculé du navigateur avec l'inspecteur intégré firebug/webkit. La sélection du sélecteur va de droite à gauche. Donc, le devrait d'abord être plus rapide, en théorie. En pratique, il n'y a pratiquement aucune différence. Même pour ~ 100 éléments. Mais si vous voulez écrire des sélecteurs efficaces, la règle est simple: Soyez le sélecteur le plus à droite aussi spécifique que possible.

2

Par défaut, tout est aligné à gauche, sauf indication contraire (bien que la situation peut être différente pour certaines langues comme l'arabe). Il y a un suggested stylesheet pour les éléments HTML, mais cela ne fait pas partie de la spécification.

Si vous surchargez text-align pour chaque table individuellement, cela peut poser un problème. Les navigateurs correspondent CSS de droite à gauche, donc avec vos règles, ils vont d'abord trouver tous les éléments td et rechercher vers le haut pour trouver un parent avec cet ID. La meilleure méthode serait d'aller plus simple:

td { 
    text-align: left; 
} 

Mais en toute honnêteté, il est probablement utile de faire cela pour les éléments où l'alignement est différent de la valeur par défaut, comme l'élément <th>.

Questions connexes