2015-05-13 2 views
0

Я использую Bootstrap-sass для одного из моих проектов, и я бы хотел настроить его с помощью переменных Sass (конечно).Bootstrap-Sass: переопределение переменных с использованием другой переменной

Я создал новый .scss-файл с именем «_variables.scss» и импортировал его в мой основной файл .scss перед файлом bootstrap-sass. Он работает нормально, пока не достигнет одной точки:

Если я хочу использовать переменные bootstrap-sass в своей настройке, он, очевидно, утверждает, что переменная неизвестна (поскольку она импортируется позже). Но это неизбежно, если я хочу изменить некоторые переменные в правильном пути, например:

$container-desktop: (940px + $grid-gutter-width); 

Если я хочу изменить только «фиксированный» значение 940px к чему-то, но я хочу еще использовать переменную $grid-gutter-width в моем определении я получаю эту ошибку, которую я объяснил выше.

Любые идеи, как я могу это сделать?

+0

http://stackoverflow.com/questions/19430217/bootstrap-3-set-container-width-to-940px-maximum-for-desktops http://stackoverflow.com/questions/19393264/why- do-bootstrap-3-force-the-container-width-to-certain-sizes/19411815 # 19411815 –

+0

Я сомневаюсь, что ссылка на два других вопроса очень полезна в stackoverflow. Это на самом деле довольно хромой. И на самом деле эти ссылки на самом деле не отвечают на мои вопросы. Он решает мою проблему с сеткой, но это был всего лишь пример. Я могу легко справиться с этим, вручную установив '$ grid-gutter-width' в' 30px', но это не может быть лучшей практикой в ​​целом. Общеизвестно, как перезаписывать переменные bootstrap sass с переменными bootstrap-sass: D – rasmus1610

+0

Я боюсь, что вам нужно добавить дополнительный файл, чтобы переопределить переменные или напрямую изменить файл bootstrap sass. –

ответ

2

Единственное, что я видел, это объявить переменные, от которых вы зависите. Так, в самозагрузки-Сасса _variables.scss, вы найдете линию $grid-gutter-width: 30px !default; и использовать его в своем собственном файле так:

$grid-gutter-width: 30px; 
$container-desktop: (940px + $grid-gutter-width); 

Как вы себе, это прискорбно просто скопировать информацию, как это, особенно если вы в конечном итоге нужно скопировать несколько определений переменных только для объявления одного, которого вы действительно хотите. Мне тоже было бы очень интересно, если у кого-то есть решение, более суровое.

+0

Было бы здорово, если бы кто-то написал программу, которая посмотрела бы на ваши объявления переменных (в данном случае просто '$ container-desktop'), а затем создаст временную копию' _variables.scss', заменяющую объявления переменных на месте. Затем вы можете передать измененный '_variables.scss' в компилятор sass. Это фактически решит проблему - не нужно повторно объявлять '$ grid-gutter-width'. –

Смежные вопросы