Ho una domanda per tutti i membri del frontend qui. Prima di tutto, non si tratta di segnaposto vs mixin di cui ho già un'idea, se usarne uno o l'altro.
Quindi la domanda è: usi segnaposto SASS con una sola, o forse due regole per evitare più occorrenze nell'output CSS risultante?
Ad esempio, considera una pagina, in cui devi spostare molti, molti, molti diversi elementi a sinistra. Sarebbe una buona idea creare un segnaposto con solo "float: left" ed estenderlo se necessario? Ciò comporterebbe una dichiarazione "float: left" per più selettori nell'output CSS, invece di essere dichiarata di nuovo per ogni selettore. Potrei dare più situazioni, ad esempio uguali margini / paddings per molti elementi e così via. Non si tratta di utilizzare variabili in quanto ciò comporterebbe anche una ridichiarazione per ciascun selettore. Non si tratta anche di evitare la "classite". Si tratta di dichiarare una regola da capo nel CSS compilato. E se in futuro avresti bisogno di aggiungere qualche clearing o qualsiasi cosa a tutti gli elementi floated, potresti semplicemente cambiare il segnaposto
Ecco un esempio di codice (per favore non preoccuparti della denominazione, è solo a scopo illustrativo):
// Placeholders
%left {
float: left;
}
%margin {
margin: 20px;
}
// Selectors, which use the defined placeholders
.selector-1 {
@extend %left;
@extend %margin;
// Other rules
}
.selector-2 {
@extend %left;
// Other rules
}
.selector-n {
@extend %left;
@extend %margin;
// Other rules
}
Risultante nel seguente CSS:
.selector-1,
.selector-2,
.selector-n {
float: left;
}
.selector-1,
.selector-n {
margin: 20px;
}
.selector-1 {
// Other rules
}
.selector-2 {
// Other rules
}
.selector-n {
// Other rules
}
Invece di:
.selector-1 {
float: left;
margin: 20px;
// Other rules
}
.selector-2 {
float: left;
// Other rules
}
.selector-n {
float: left;
margin: 20px;
// Other rules
}
Avrebbe un impatto sul rendimento della pagina? Porterebbe a un codice più disordinato e difficile da gestire? Quale sarebbe il tuo approccio su questo?
Non sto assolutamente cercando una risposta specifica e definitiva. Solo piuttosto alcuni pensieri, intuizioni e esperienze personali.