2013-08-23 9 views
15

Sto utilizzando il framework CSS di Zurb Foundation 4 (S) e sto riscontrando un problema di stili massivamente duplicati. Questo perché in ogni file che ho @import 'foundation' in, vengono importati anche tutti gli stili da Foundation (regole per body, .row, .button e amici). Ciò porta a lunghi tempi di compilazione SCSS ea una console per sviluppatori web difficile da navigare in Chrome, poiché tutti gli stili di Zurb sono dichiarati quattro o cinque volte.Come si possono importare solo variabili e mixin da fogli di stile Scss?

per attenuare questo, ho creato un file globals SCSS, che contiene le variabili ignorabile che utilizza Foundation (è copia-incollato da foundation_and_overrides.scss, poi foundation_and_overrides globali di importazione). L'importazione del solo file globals.scss elimina la duplicazione solo nei file che non utilizzano i mixin Foundation.

È nei file che fanno uso di Foundation mixins: Posso importare solo i mixin da un file SCSS, senza importare gli stili di base in cemento?

+0

Non è necessario creare manualmente un file di variabili se lo si utilizza come estensione Compass. Il comando 'compass install foundation' dovrebbe aver generato un file _settings.scss per te. – cimmanon

+0

@ cimmanon, non sto usando la bussola; Sto lasciando che l'asset pipeline di Rails si occupi della compilazione e del bundler per la gestione delle dipendenze. – dymk

risposta

11

Le importazioni sono una cosa tutto o niente. Tutto ciò che è nel file è ciò che ottieni. Se si guarda attraverso l'origine di Foundation, tuttavia, ci sono variabili che è possibile modificare che sopprimono gli stili di emissione (ad esempio in buttons, l'impostazione di $include-html-button-classes su false disabiliterà gli stili). Questo modello di progettazione è specifico della Fondazione, non puoi aspettarti che altre librerie siano create in questo modo.

Quando si importa la fondazione tramite @import "foundation", si sta importando questo file: https://github.com/zurb/foundation/blob/master/scss/foundation.scss. Come puoi vedere, importa altri file. Non è necessario importare questo file se non è necessario tutto: basta importare il file specifico desiderato (ad esempio @import 'foundation/components/side-nav' solo per il file side-nav).

+1

Grazie, non ero a conoscenza delle variabili di soppressione fornite da Foundation. Quelli dovrebbero aiutare un bel po '. – dymk

+0

Esiste comunque la possibilità di concentrarsi sul download di bullet nav scss/css piuttosto che sull'intero blocco di stili? – Neil

+1

@NeilLittle Vedere la parte "Le importazioni sono tutto o niente" della risposta. Non è possibile selezionare e selezionare parti di un file a meno che l'autore non lo abbia scritto in un modo che consenta di farlo. – cimmanon

Problemi correlati