Переменные SASS записываются в файл CSS с помощью VS 2013 Web Essentials

#css #visual-studio-2013 #sass #web-essentials

#css #visual-studio-2013 #sass #web-essentials

Вопрос:

Я использую Visual Studio 2013 Express для веб-обновления 2 с обновлением Web Essentials 2 для записи файла SASS (SCSS Synthax). Скомпилированный файл CSS содержит имена переменных вместо значений. Следующий код

 $height: 200px;
#contentDiv {
  height: calc(100% - $height);
}
  

создает этот CSS

 #contentDiv {
  height: calc(100% - $height); }
  

Итак, что я делаю не так? Я создал простой веб-проект, установил Web Essentials, добавил файл SASS и начал писать код (новый для SASS).

Ответ №1:

Вы не можете вычесть пиксели из процента, используя calculate функцию Sass, потому что они несовместимые типы.

Если вы хотите использовать функцию вычисления CSS, вы можете сделать это:

 $something: 100px;

#contentDiv {
  height: calc(100% - #{$something});
}
  

Который компилируется в:

 #contentDiv {
  height: calc(100% - 100px);
}
  

Комментарии:

1. но это из w3.org : width: calc(100%/3 - 2*1em - 2*1px); итак, я подумал, что «все» возможно? И это из developers.mozilla.org документы: width: calc(100% - 80px);

2. Спасибо, теперь это работает. Но я не уверен, почему я должен был добавить #{} . Это не было видно из руководства по Sass.

3. По сути, это заставляет Sass обрабатывать содержимое как SassScript, а не как CSS, потому что это то, чего он ожидал (в пределах a calc() ) . Дополнительную информацию см. в разделе Интерполяция в справочном документе sass-lang.com/documentation /…

Ответ №2:

Я использую http://sassmeister.com чтобы проверить вашу компиляцию.

По-видимому, ошибка связана с функцией calc

 $something: 100px;

#contentDiv {
  heigth: calc(100% - $something); //doesn't work
  heigth: calculate(100% - $something); //work with errors
  height: $something;//work
}