Создание переменной scss в config.rb для файлов scss

Как определить переменную SCSS в Config.rb для файла SCSS [проект COMPASS]

Мой вариант использования

В файле Config.rb что-то вроде

a = true

В style.scss мне нравится использовать переменную как

@if a == true{
     background: #fff;
} 
@else {
   background: #000;
}

Одно из решений http://worldhousefinder.com/?p=124141

Но это не сработало для меня.

2 ответа

Вы не можете / не должны этого делать. Вы будете предварительно скомпилировать ваши ресурсы, чтобы не было никакой возможности динамически адаптироваться к изменяющимся переменным. Это может работать для вашей переменной config.rb, но это неправильный шаблон, и вам придется перекомпилировать ваши активы каждый раз, когда вы изменяете переменную, это лишает смысла делать проверки if else в sass.

Гораздо более простой подход - добавить класс. .active.inactive на ваших элементах (теле). Или выведите встроенный CSS в своей голове для таких вещей, как пользовательские цвета и т. Д., В зависимости от пользователей, которые вошли в систему.

Что ты пытаешься сделать? Это звучит как что-то, что вы бы сделали, чтобы проверить, находитесь ли вы в производстве или разработке? В этом случае вы можете сделать что-то вроде:

<body class='<%= "development" if Rails.env == 'development' %>'>

или даже

<body <%= "style='background-color: red;'" if Rails.env == 'development' %>

Вы никогда не должны использовать ruby ​​в своих CSS и JavaScript, если вы обнаружите, что делаете это, вы, вероятно, подходите к нему неправильно. По крайней мере, это то, что я нашел после многих попыток сделать это красиво.

ps data-attribute - очень эффективный способ передачи переменных и т. д. в javascript

Прежде всего, вы смотрели на переменные и миксины?

Если вы ДЕЙСТВИТЕЛЬНО пытаетесь передать внешние переменные в SASS, вы должны понимать, что он не знает о вашем конфигурационном файле при компиляции CSS. По словам Натана Вейзенбаума (одного из главных разработчиков Haml), лучший способ сделать это - создать пользовательские пользовательские функции.

Если вы идете по этому пути (снова цитируя Натана):

Вы должны быть уверены, что ваши таблицы стилей будут обновляться при изменении данных. Вы можете сделать это, позвонив Sass::Plugin.force_update_stylesheets,

Другие вопросы по тегам