2011-09-10 6 views
17

Sto cercando di fare riferimento a un mixin definito in un unico file (application.css.scss) in un altro (home.css.scss). Ho provato ad importare applicazione in casa, ma ancora un errore "non definito mixin".di condivisione tra i file SCSS a rotaie 3.1

Esiste un modo per importare automaticamente tutti i miei file, o qual è il modo migliore per gestire le importazioni tra i file?

risposta

25

Non sono ancora riuscito a fare il salto a 3.1, ma usando il Compass & Sass per un po ', ho trovato che è meglio provare a gestire mixin/definition sass separatamente dalla generazione di CSS effettiva. In questo modo, i file mixin possono essere trattati liberamente come librerie di codice, incluso ove necessario, senza di loro più volte generare regole CSS.

Così si potrebbe avere:

/* my-mixin-concern.scss */ 
$default_foo: 123px !default; 

@mixin some-concern($foo: $default_foo) { 
    // do something 
} 

/* application.scss */ 
$default_foo: 321px; // optionally, pre-set the default value before import. 
@import 'my-mixin-concern'; 
p { @include some-concern; } 

/* home.scss */ 
@import 'my-mixin-concern'; 
body.home p { @include some-concern(9000px); } 

In questo modo si sta importando in modo esplicito tutti i requisiti per ogni file SCSS, in modo simile a come si dovrebbe farlo in una libreria di codice.

0

Rails soluzione pura

Fase 1. Rinominare

application.css -> application.css.scss 

Fase 2. Refactor

// application.css.scss 

/* 
*= require_self 
*/ 

@import "mixins.css.csss" 
@import "project.css.scss" 
Problemi correlati