Services : Actualité Emploi Blog Forum Flux
Formation Trafic : Référencement Liens sponsorisés Affiliation Ecommerce Nom de domaine E-réputation Marketing Mobile Black Hat
Formation Technique : Performance Web Html Css Sql Curl Asp Dotnet Php Ajax Wordpress Twitter Google Analytics

Forum Oseox
Oseox

Choisir entre une class et un identificateur en CSS

Forum Référencement et Trafic
Nous sommes le Mar 21 Nov 2017 05:37

Heures au format UTC [ Heure d’été ]




Poster un nouveau sujet Répondre au sujet
Auteur Message
MessagePosté: Dim 11 Juil 2010 19:19 
Salut a tous,

Je vois pas l'utilité d'utiliser les identificateur dans les css alors que je peux faire ça avec les class

Je sais que l'on peut utiliser les class autant de fois qu'on veut alors que cela n'est pas possible avec les identificateurs. Alors si quelqu'un peut m'expliquer ça...

Merci d'avance


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 12 Juil 2010 07:56 
Avatar de l’utilisateur
Ça c'est une bonne question qui me donne l'idée d'un article.
Pourquoi des ID alors que les CLASS suffisent ?
Parce que les ID sont interprétées beaucoup plus rapidement par les moteurs de rendu et que chaque milliseconde compte.
Et mieux, encore on peut se passer complètement des ID et des CLASS.


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 12 Juil 2010 13:43 
Avatar de l’utilisateur
Si un intégrateur repasse sur ton travail, ou si plusieurs intégrateurs travaillent sur le même site, la prise en main du code peut être plus aisée.


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Jeu 26 Aoû 2010 08:05 
Bonjour,

Justement cette différence entre identificateurs et CSS est très importante pour un développeur ou intégrateur Web.
Premièrement tu peux avoir les deux en même temps.

Comme le dit Sven les #id sont interprétés beaucoup plus rapidement par les moteurs de rendu (car de fait de leurs unicité le parsing est beaucoup plus rapide)
Le fait qu'un ID soit unique permet une identification unique pour l'utilisation de Javascript par exemple (Une seule div). Encore une fois le moteur d'accès Javascript est plus optimal pour un ID que pour une classe (J'ai vu un bench trainer sur un obscure forum de Mozilla une fois faudrait que je le retrouve).

Dans tous les cas, dès que tu sais qu'un élément sera unique, préfère un Id à une classe.


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Sam 28 Aoû 2010 13:40 
Professionnel
Professionnel
Avatar de l’utilisateur
Bonjour,

Ayant un peu bossé sur webkit (les autres interpréteurs sont +/- kifkif à ce niveau sans doute), je pense de mon côté que la logique de rapidité d'interprétation doit être écartée lors de l'intégration, voici pourquoi :

1) ça s'exécute côté client et la différence sera de l'ordre du milliseconde (aucun bénef pour le serveur et l'internaute s'en apercevra même pas)
2) "car de fait de leurs unicité le parsing est beaucoup plus rapide" -> faux, en tout cas pour webkit, colle 2 fois le même ID et tu verras que ton style s'appliquera de la même manière sur les 2 (c'est également le cas pour ie), donc le parsing est très certainement le même, puisque la boucle qui parse le dom ne s'arrête pas après le premier. C'est différent pour JS ou tu as effectivement raison, getElementById renverra certainement le premier; en JS, c'est donc plus rapide (dans le meilleur des cas, sinon ça plante, mais il est quand même con d'avoir 2 fois le même ID dans la page).
3) la complexité : pour les férus de structure de données (je parle de ceci, nb: j'ai pas lu le cours); m'est avis que dans les 2 cas le parsing aura une complexité O(n), le gain est par conséquent limité.

Bref, se contenter de la logique d'intégration normale est suffisant. Éléments uniques, blocs particuliers (header, footer...) => ID, structure qui a vocation à se répéter => class.

Je connais trop mal webkit pour en parler, je vais m'abstenir et prendre pour exemple un parseur Java dont je connais mieux les sources (http://htmlparser.sourceforge.net/) : le gain de temps au niveau de l'exécution se situe principalement au niveau des erreurs HTML : oubli de fermeture de balise, ce type de bêtise qui peut être facilement évitée. En effet, le parseur doit alors lever des exceptions et "imaginer" ou doit être la balise fermante (ce qui passe la complexité à O(n²)). Il doit en être de même pour les pour les erreurs css.

Voilà voilà, je tiens également à dire que je n'ai pas forcément raison, et suis totalement ouvert à la lecture de bench sur ces sujet si toutefois vous en connaissez. Ma conclusion perso est que mettre un ID dans le but unique que la page s'affiche plus vite chez l'internaute est illogique, s'il s'agit d'une structure répétable (ou vous multipliez les ID avec le même style appliquée en CSS).


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 30 Aoû 2010 14:10 
Mon avis perso ... Pourquoi pas utiliser que des class et pas de ID? Parce qu' accessoirement, c'est la norme et la norme permet de la CLARTE et de l'EVOLUTIVITE, une trame convenable, quoi, ... accessoirement aussi un parsage facilité avec DOM, une meilleure portabilité des codes javascript sur navigateurs , donc de l'ergonomie et de la portabilité.
La récupération d'un ID devrait être, en principe, plus rapide pour les navigateurs des utilisateurs que la récupération des class et surtout plus portable (un peu, après verif sur quirkmodes). Et si on part par la, on refait la roue sur tout.


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 8 Nov 2010 12:11 
Tiens aussi ... Comme ça me tape un peu sur le système, tu m'expliqueras comment tu fonctionnes avec des éléments imbriqués et les sélecteurs?
:twisted:


Haut
 Profil Envoyer un e-mail  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 7 messages ] 

Heures au format UTC [ Heure d’été ]


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Abonnez-vous au flux RSS

Blog

Forum

Offres d'emploi

Copyright : Moteur, traduction et optimisation
Merci de votre visite sur le forum Oseox