Я хотел бы перейти на SCSS в моем проекте Angular. Пока что единственное, что я хочу от SCSS, - это переменные. На данный момент я использую переменные CSS, которые работают очень хорошо, потому что вы объявляете их в :root в моем файле styles.css, а затем можете использовать их во всех файлах CSS компонентов в приложении.
У меня вопрос, возможно ли это с помощью SCSS (глобального импорта)? Потому что мне очень утомительно переходить от языка, который сам импортировал глобально (CSS), к чему-то, что теперь требует, чтобы я импортировал переменные везде, где мне это нужно (SCSS).
Я немного разочарован тем, почему лучшая версия чего-то требует от меня этого. Поэтому я уверен, что должен быть способ не импортировать мои переменные в каждый SCSS, в котором они мне нужны.
Например, я хочу создать переменные в моем файле styles.scss, а затем иметь возможность использовать эти переменные в стилях любого из моих компонентов, ничего не импортируя. В CSS переменные типа --MyVar в :root доступны из CSS любых компонентов.
Под глобальным я подразумеваю несколько файлов .css. !global - это всего лишь утверждение, которое применяется к текущему файлу .scss, в котором он находится. Если я неправильно понимаю, пожалуйста, добавьте официальный ответ с примером, если вы не возражаете :)
@PaulKruger есть какие-нибудь ответы, решающие вашу проблему ???
Да, прости. Это было так давно! Спасибо за ваш ответ!






Я не думаю, что вам нужно импортировать переменную scss везде, где вы хотите ее использовать
Предположим, у вас есть файл
_variables.scss
$white:#fff;
$black:#000;
затем в main.scss вы можете импортировать этот файл
main.scss
@import "variables.scss";
Теперь предположим, что вы хотите использовать эти переменные, например, в файле _button.scss.
_button.scss
button{
color:$black
}
Вы можете напрямую использовать эти переменные при условии, что вы импортируете файл _button.scss в файл main.scssпослеvariable.scss
Размещение его после файлов varibles.scss гарантирует, что переменные будут доступны в файле button.scss.
main.scss
@import "variables.scss";
@import "button.scss";
Что касается переменных CSS, вы можете использовать их SCSS,
попробуйте запустить следующий фрагмент в Sassmeister
:root{
--gridWidth: 45px;
--gridHeight: 45px;
}
.Grid {
width: var(--gridWidth);
height: var(--gridHeight);
border: 1px solid black;
}
Это работает, но вы все еще пишете строку импорта. Я предполагаю, пишете ли вы строку импорта в main.scss или в любом другом component.scss, она по-прежнему пишет одну строку. Так что я не уверен, много ли вы здесь выигрываете.
Вам не нужно каждый раз импортировать переменные, рассмотрите этот пример.
theme.scss
$primary-color:#00b289;
$secondary-color:#505050;
@import "components/_checkbox";
@import "components/_button";
как вы можете видеть, я помечаю свои переменные только один раз, и я могу использовать переменные внутри моего частичного файла sass.
другой способ - создать частичный файл sass, включающий все ваши переменные и импортированный один раз
theme.scss
@import "_variables.scss";
@import "components/_checkbox";
@import "components/_button";
Не совсем уверен, что понимаю, но у Sass есть глобальные переменные, вам просто нужно добавить
!globalк своей переменной. Sass будет компилироваться в CSS, поэтому я уверяю вас, что все, что возможно в CSS, также возможно в Sass.