Есть ли альтернатива SASS или LESS, которая реализует что-то вроде модулей и разумной глобальной области?Препроцессор CSS с модулями и разумной областью?
Например, когда я делаю это в SASS (или МЕНЬШЕ эквивалент):
@import "foo.scss"
... это толкает все Примеси, переменные и т.д. из импортируемого файла в глобальном масштабе, возможно перекрывая или сталкиваясь с загруженными или определенными миксинами/переменными. Я думаю, что это беспорядок.
Я хотел бы иметь что-то более модульное. Представьте себе, что foo.scss
имеет подмешать bar
:
@mixin bar {
// ...
}
Чтобы использовать эту подмешать я бы назвал его по отношению к «Foo» пространства имен. Более или как это:
@import "foo.scss"
.bar {
@include foo.bar;
}
Другими словами: вместо того, чтобы работать в качестве эквивалента from foo import *
в Python, @import foo
будет действительно работать, как import foo
.
So. Есть ли препроцессор CSS, который интересуется такими пространствами имен?
Я не знаю, если он поддерживает пространства имен, но посмотрите на Stylus http://learnboost.github.com/stylus/, другой, по-видимому отличный препроцессор css (никогда не использовал его), который можно легко расширить. –
Вы можете обернуть свой файл меньше в mixin (например, вы бы использовали пространство имен в javascript) eg .namespaced() { // переменные не просачиваются !! } .namespaced(); –
@LukePage Эта функция опрятная, но у вас могут быть два файла с тем же «.namespace». Для истинной модульности все имена из импортированных файлов не следует отбрасывать в глобальную область. – moraes