Sto utilizzando un approccio "mobile first" sul mio sito e sto utilizzando SCSS.SASS/SCSS utilizzando @extend attraverso singoli file (responsive design)
Ho 3 fogli di stile SCSS:
base.scss
(servito a tutti)medium.scss
(> = 768px finestra)large.scss
(> = 1024px finestra)
Sono servito in questo modo:
<link rel="stylesheet" href="/css/base.css" type="text/css" />
<link rel="stylesheet" href="/css/medium.css" type="text/css" media="only screen and (min-width: 767px)" />
<link rel="stylesheet" href="/css/large.css" type="text/css" media="only screen and (min-width: 1023px)" />
In altre parole, large.scss
non ha conoscenza del css in base.scss
, tuttavia ho bisogno di estendere una classe che risiede in base.css
, quando in large.scss
.
Come posso fare questo?
Ho provato separare gli elementi devo estendere, come i bottoni, in un foglio di stile separato, e quindi utilizzare @import 'buttons.scss';
in medium.scss
, ma poi tutto il css in buttons.scss
sarà reso nel tale foglio pure.
C'è un modo per rendere visibili le classi in base.scss al "motore di rendering" di SASS quando si compila il css in modo che possano essere utilizzati in medium.scss?
Questa risposta è ora obsoleto. SASS/SCSS ora supporta il file incrociato '@ extend' quando si usa' @ import' su quel file. – GeReV
Sì, questo è possibile, ma in questo caso i file scss sono indipendenti l'uno dall'altro, quindi quei file non sono al corrente delle rispettive classi. – Rito
@GeReV Penso che @ import copi tutte le dichiarazioni da un file e le infili in un altro. Forse non è desiderabile quando vuoi ereditare una dichiarazione? – Donato