Estoy utilizando un enfoque de "móvil primero" en mi sitio, y estoy utilizando SCSS.SASS/SCSS usando @extend en archivos individuales (diseño receptivo)
tengo 3 hojas de estilo SCSS:
base.scss
(servido para todos)medium.scss
(> = 768px ventana)large.scss
(> = 1024px de ventana)
Son servido de esta manera:
<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)" />
En otras palabras, large.scss
no tiene conocimiento de la CSS en base.scss
, sin embargo, necesito extender una clase que reside en base.css
, cuando está en large.scss
.
¿Cómo puedo hacer esto?
Probé la separación de los elementos I necesidad de extender, tales como los botones, en una hoja de estilo separada, y luego usar @import 'buttons.scss';
en medium.scss
, pero entonces todo el css en buttons.scss
se representará en esa hoja también.
¿Hay alguna forma de exponer las clases en base.scss al "motor de renderizado" de SASS al compilar el css para que puedan usarse en medium.scss?
Esta respuesta es ahora desactualizado SASS/SCSS ahora admite cross-file '@ extend' cuando se usa' @ import' en ese archivo. – GeReV
Sí, esto es posible, pero en este caso los archivos scss son independientes entre sí, por lo que esos archivos no conocen las clases de los demás. – Rito
@GeReV Creo que @ Import copia todas las declaraciones de un archivo y las pega en otro. Tal vez eso no es deseable cuando solo quieres heredar una declaración? – Donato