В настоящее время я работаю над новым проектом, который позволяет пользователям изменять внешний вид веб-сайта по своему вкусу. Они могут изменить цвет фона и прочее, что будет сохранено в базе данных для последующего использования, или они могут быть сохранены в файле cookie. Однако я использовал php-документ для эмуляции таблицы стилей, чтобы в качестве примера я мог передавать такие переменные, как <link rel="stylesheet" type="text/css" href="main.php?bgColor=#444"
. Таким образом, я мог просто сделать css динамическим и не слишком полагаться на javascript.
Однако один друг упомянул об использовании SASS, но я действительно не знаю, подходит ли он для моего проекта, так как я мало знаю о структуре компаса. Как бы вы передали динамические переменные в этот файл .sass или .scss? Вы просто делаете оператор @import "php-variables";
и включаете файл php? или вы можете отправлять динамические переменные, как я сделал с php?
А также, каковы преимущества использования php по сравнению с SASS или наоборот?
Отправка динамических переменных в SASS
Ответы (2)
Кажется, здесь есть фундаментальное непонимание, поэтому я дам короткий ответ и более длинный.
короткая
Вы не можете отправлять динамические переменные в Sass. Может быть какой-то порт для PHP, который делает это возможным, но с использованием только Sass это невозможно.
дольше
Вы можете ознакомиться с что такое Sass и как он вписывается в ваш инструментарий. Похоже, вы используете PHP, поэтому я предполагаю, что у вас будет PHP, отображающий HTML-шаблоны/делающий магию БД, может быть, немного JavaScript для выполнения сценариев на стороне клиента, и у вас будут элементы стиля CSS (обычный, ванильный CSS). на Вашем сайте.
Sass/SCSS (далее Sass) не заменяет CSS (вы никогда не увидите <link type="text/sass">
), он просто предоставляет другой синтаксис для написания стилей, которые позже компилируются в CSS.
Sass обычно компилируется в CSS перед отправкой ваших ресурсов в производство, он не генерируется, когда пользователь запрашивает его. Между вашими файлами Sass и вашим HTML-документом нет реальной связи, поэтому вы не сможете передавать какие-либо переменные в свои файлы Sass.
@imjared описал, почему SASS не является подходящим решением, и я попытаюсь предложить, какое из них может быть хорошим.
Ваше решение обслуживания динамического CSS из PHP-скрипта не очень хорошо, потому что оно не допускает кэширования. Каждый пользователь должен будет загружать файл CSS каждый раз, когда он обновляет страницу или переходит по ссылке.
Вместо этого вам нужно создать файлы CSS, сохранить их как настоящие файлы и предоставить к ним динамические ссылки.
Имя файла может совпадать с именем соответствующего пользователя (пожалуйста, будьте особенно осторожны, чтобы очистить имена файлов), тогда файл CSS будет перезаписываться каждый раз, когда пользователь обновляет свои стили.
sass !== compass
. С SASS вы можете определить свои переменные в своей таблице стилей и, как и в php, вы можете использовать их везде, где вам нужно. - person Fabrizio Calderan   schedule 25.06.2013