2010-03-22 5 views
1

Peut-être que cette question a été posée ailleurs, mais je n'arrive pas à la trouver. Avec les modules HTML5 et CSS3 de plus en plus proches, je m'intéresse à une discussion sur la façon dont nous écrivons CSS.Sémantique CSS; sélection d'éléments directement ou par commande

Quelque chose like this où la sélection est effectuée via l'ordre des éléments et les pseudo-classes est particulièrement fascinant. Le gros avantage de cette méthode semble être la modularisation complète du HTML et du CSS pour simplifier les réglages et les révisions.

Dans le même temps, les identifiants sémantiques et les classes semblent avantageux pour diverses raisons. En particulier, la liaison directe, le ciblage JS et les sélecteurs CSS plus courts. En outre, il semble que la longueur du sélecteur pourrait être un problème. Par exemple, je viens d'écrire ce qui suit, ce qui serait certes plus facile l'utilisation de certains éléments HTML5 sémantiques:

body>div:nth-child(2)>div:nth-child(2)>ul:nth-child(2)>li:last-child

Alors ce que vous dites, le débordement de pile? L'avenir de l'écriture CSS est-il axé sur l'ordre des éléments et les pseudo-classes? Ou sont les ID et les classes et les moyens actuels ici pour rester?

(Je suis bien conscient que les identifiants et les classes ont leur place, bien que je sois intéressé à entendre plus de façons dont vous penserez qu'ils continueront à être nécessaires.Je ne veux pas déformer cela ou l'encadrer comme "Est-ce que les pseudo-classes ID Killers?" La discussion qui m'intéresse est plus grand-image et les façons d'écrire CSS change.)

Répondre

3

Je pense que c'est une abomination illisible qui va cesser de fonctionner mystérieusement lorsque le HTML change.

Les sélecteurs basés sur les ordres ne sont pas auto-documentés.
Si quelqu'un d'autre prend en charge le projet, et que le HTML change, il n'aura aucune idée de ce que le sélecteur est censé sélectionner, et aura du mal à le réparer correctement.

Ceci est particulièrement important si une partie du code HTML est générée automatiquement.

+2

Bon point, et mon exemple était certainement plus un modèle de comment ** pas ** de faire les choses. nth-child semble particulièrement problématique, d'autant plus que vous cherchez à cibler des éléments par emplacement spécifique plutôt que par une formule ou "impair" et "pair". Cet exemple mis à part, auriez-vous la même position à l'égard de quelqu'un qui écrit beaucoup plus habilement que moi-même? En particulier l'exemple lié? http://camendesign.com/design/ –

+0

Je vais aller de l'avant et marquer ceci comme réponse parce que vous avez fourni un grand contrepoint à ma suggestion. Mon espoir était pour plus de discussion des autres, mais merci beaucoup pour votre contribution! –

Questions connexes