2017-08-11 2 views
1

Je voudrais savoir quelle est la meilleure façon de coder les feuilles de style en termes de performances, de lisibilité et de cas d'utilisation au quotidien.Est-il préférable d'utiliser des mixins ou des ensembles de styles combinés dans des feuilles de style?

Disons que nous voulons faire des styles:

.container { 
    background-color: red; 
    .nested-container { 
    color: blue; 
    } 
} 

.container-two { 
    background-color: black; 
    .nested-container { 
    color: blue; 
    } 
} 

Je me demande de quelle manière est plus efficace pour ce genre de cas.

/* mixins way */ 
@mixin duplicated-container { 
    .nested-container { 
     color: blue; 
    } 
} 

.container { 
    background-color: red; 
    @include duplicated-container; 
} 
.container-two { 
    background-color: black; 
    @include duplicated-container; 
} 

/* combined sets way */ 
.container { 
    background-color: red; 
} 
.container-two { 
    background-color: black; 
} 
.container, 
.container-two { 
    .nested-container { 
    color: blue; 
    } 
} 

La première façon est beaucoup plus lisible, au moins pour moi. La deuxième façon rend le fichier de sortie plus petit que lorsque vous utilisez mixins, car le code n'est pas dupliqué de quelque façon que ce soit. S'il vous plaît gardez à l'esprit que c'est juste un exemple très simple de ce que je veux atteindre, si container et container-two sont à deux endroits différents dans le fichier, d'abord le rend très lisible et facile à jouer, mais il duplique code dans la sortie finale, donc je ne suis pas sûr si c'est bon d'utiliser mixins de cette façon.

Cela a été un gros dilemme pour moi ces derniers jours et j'ai décidé de demander de l'aide aux professionnels, parce que je finis toujours avec des feuilles de style en désordre. J'apprécie toute aide.

+1

Si vous êtes préoccupé par la taille du fichier, utilisez un compresseur/minificateur CSS. Un cas pourrait être fait pour la lisibilité de l'un ou l'autre. Ça dépend de la situation. – 4castle

+0

Merci pour la réponse. J'utilise déjà 'CSS Minifier'. La chose est que si ce 'mixin' serait de 50 lignes de code, nous nous retrouvons avec 50 lignes fois le montant que nous l'avons utilisé dans le code, dans le deuxième scénario, nous nous retrouvons avec seulement 50 lignes de code. C'est très dur pour moi de craquer. –

Répondre

1

Le premier semble être un meilleur choix, puisque classes sont répertoriées dans un seul endroit. Avec la deuxième approche, une fois que vous avez ajouté un .container-three, vous devez vous souvenir de l'ajouter également à la liste des classes sous lesquelles .nested-container obtient ses styles à partir de .container-three.

Vous ne devriez pas vous soucier de la taille du fichier lorsque vous utilisez des mixins. Avec un pipeline moderne de CSS minifier et le contenu gzipped étant par défaut pour la plupart des serveurs, la duplication du contenu en CSS n'augmente pas significativement la taille du fichier, et might even perform better.

Ne vous inquiétez pas de la duplication de code. C'est une micro-optimisation qui serait fortement optimisée par gzip de toute façon. Aller pour la lisibilité dans ce cas.

+0

C'est un très bon article qui clarifie beaucoup pour moi! Merci beaucoup pour cela ainsi que pour votre temps! –