User Tools

Site Tools


css_guidelines:specificity

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

css_guidelines:specificity [2016/08/10 16:57] – created leocss_guidelines:specificity [2016/08/10 17:01] (current) leo
Line 3: Line 3:
 ====== Specificity ====== ====== Specificity ======
  
-As we’ve seen, CSS isn’t the most friendly of languagesglobally operatingvery leakydependent on locationhard to encapsulatebased on inheritance… ButNone of that even comes close to the horrors of specificity.+comme nous l'avons vu, CSS n'est pas le langage le plus sympatiqueopérant globalementfuyant de partoutdépendant de la localisationdifficile à encapsulerbasé sur l'héritage… Mais rien de tout cela n'approche les horreurs de la spécificité.
  
-No matter how well considered your namingregardless of how perfect your source order and cascade are managedand how well you’ve scoped your rulesetsjust one overly-specific selector can undo everythingIt is a gigantic curveball, and undermines CSS’ very nature of the cascade, inheritanceand source order.+Quels que soient les efforts que vous aurez mis dans votre nommageaussi parfaite soit l'ordre de vos source, la gestion de votre cascade, et comment vous aurez géré la portée de vos bases de règleune seule base de règle trop spécifique peut réduire cela à néantc'est un énomre piège qui sape la nature profonde du CSS de cascade, héritageet ordre des sources.
  
-The problem with specificity is that it sets precedents and trumps that cannot simply be undoneIf we take real example that I was responsible for some years ago:+Le problème avec la spécificité est qu'il établi des précédents et cartes (trumps ?) qui ne peuvent être surpassés simplementSi nous prenons un exemple réel dont je fus responsable il y quelques années :
  
 <code> <code>
Line 13: Line 13:
 </code> </code>
  
-Not only does this exhibit poor Selector Intent—I didn’t actually want every table in the #content areaI wanted a specific type of table that just happened to live thereit is a hugely over-specific selectorThis became apparent a number of weeks later, when I needed a second type of table:+Non seulement cela montre une piètre Selector Intent — Je ne souhaitais pas en effet sélectionner toutes les table de la zone #content, je voulais sélectionner un type spécifique de table qui se trouver être là — ce qui est un sélecteur totalement sur-spécifiquecela apparut quelques semaines plus tard lorsque j'eu besoin d'un second type de table:
  
 <code> <code>
Line 24: Line 24:
 </code> </code>
  
-The first selector was trumping the specificity of the one defined after it, working against CSS’ source-order based application of styles. In order to remedy thisI had two main options. I could+Le premier sélecteur surpassait la spécifité de celui défini après it, à l'encontre du principe d'ordre des sources de CSS concernant l'application des styles. Pour remédier à çaj'avais deux options principales, je pouvais :
  
-  - refactor my CSS and HTML to remove that ID; +  - refactorer mon CSS et HTML pour enlever cet ID ; 
-  - write a more specific selector to override it.+  - écrire un CSS plus spécifique pour overrider la première règle.
  
-Unfortunatelyrefactoring would have taken a long time; it was a mature product and the knock-on effects of removing this ID would have been a more substantial business cost than the second option: just write a more specific selector.+Malheureusementla refactorisation aurait pris trop de temps, il s'agissait d'un produit mûr et les répercussions de la suppression de l'Id aurait au des business cost plus substantiels que la seconde option : écrire simplement un sélecteur plus spécifique.
  
 <code> <code>
Line 37: Line 37:
 </code> </code>
  
-Now I have a selector that is even more specific stillAnd if I ever want to override this oneI will need another selector of at least the same specificity defined after itI’ve started on a downward spiral.+J'avais alors un sélécteur encore plus spécifique Et si je voulais l'overriderj'aurais à écrire un sélecteur avec au moins le même degré de spécificité et définit après celui-diJ'avais démarré une spirale sans fin.
  
-Specificity can, among other things,+La spécificité peutentre autre choses :
  
-  - limit your ability to extend and manipulate a codebase+  - limiter votre capacité à étendre et manipluer une base de code
-  - interrupt and undo CSS’ cascading, inheriting nature+  - interrompre et revenir sur la nature de la cascade CSS; 
-  - cause avoidable verbosity in your project+  - causer une verbosité évitable dans votre projet
-  - prevent things from working as expected when moved into different environments; +  - empêcher mes choses de fontcionner comme prévu lorsque déplacer dans un environnement différent. 
-  - lead to serious developer frustration.+  - engendrer une sérieuse frustration du développeur.
  
-All of these issues are greatly magnified when working on a larger project with a number of developers contributing code.+Tout ces problèmes sont grandement amplifiés lorsque l'on travaille sur un grand projet avec plusieurs développeurs contribuant au code.
  
 ===== Keep It Low at All Times ===== ===== Keep It Low at All Times =====
  
-The problem with specificity isn’t necessarily that it’s high or lowit’the fact it is so variant and that it cannot be opted out ofthe only way to deal with it is to get progressively more specificthe notorious specificity wars we looked at above.+Le problème avec la spécificité n'est pas nécessairement qu'elle soit haute ou bassec'est le fait qu'elle soit si variable et qu'on ne puisse pas choisir de ne pas s'y soumettre le seul moyen de la gérer est d'être progressivement plus spécifique — les fameuses guerres de spécificité que nous avons regardées d'en haut.
  
-One of the single, simplest tips for an easier life when writing CSS—particularly at any reasonable scaleis to keep always try and keep specificity as low as possible at all timesTry to make sure there isn’t lot of variance between selectors in your codebaseand that all selectors strive for as low a specificity as possible.+Un des seuls et plus simples trucs pour se simplifier la vie en écrivant des CSS — en particulier à une taille raisonnable — est de toujours essayer de conserver la spécificité aussi basse que possible. Essayez de vous assurer qu'il n'que peu de variance entre les sélecteurs de votre base de codeet que les sélecteurs ont une spécificité aussi réduite que possible.
  
-Doing so will instantly help you tame and manage your projectmeaning that no overly-specific selectors are likely to impact or affect anything of a lower specificity elsewhereIt also means you’re less likely to need to fight your way out of specificity cornersand you’ll probably also be writing much smaller stylesheets.+S'en tenir à cela vous aidera à maîtriser et gérer votre projetsignifiant qu'aucun sélecteur sur-spécifique ne risquera d'impacter ou affecter quoi que ce soit de plus basse spécificité où que ce soitCela signifieras aussi que vous risquez moins d'avoir à vous battre pour des histoires de spécificitéset aussi probablement que vous écrirez des feuilles de style bien plus petites.
  
-Simple changes to the way we work include, but are not limited to,+des changement simples à notre manière de travailler incluentmais ne se limitent pas à :
  
-  - not using IDs in your CSS; +    ne pas utiliser d'ID dans votre CSS; 
-  - not nesting selectors+    ne pas nicher de sélecteurs
-  - not qualifying classes; +    ne pas qualifier les classes; 
-  - not chaining selectors.+    ne pas chaîner les sélecteurs.
  
-Specificity can be wrangled and understoodbut it is safer just to avoid it entirely.+La spécificité peut être discutée et comprisemais il est plu ssimple de l'éviter complètement.
css_guidelines/specificity.1470841031.txt.gz · Last modified: 2016/08/10 16:57 by leo