Какие преимущества есть в SCSS / Less / Sass vs - PullRequest
0 голосов
/ 02 июня 2018

Я давний PHP-разработчик, и хотя я сделал много умных вещей с помощью CSS, я никогда не углублялся в SCSS / Less / Sass.

Работая в стеке LAMP, я никогда не видел в SCSS / Less / Sass ничего такого, что не могло бы быть лучше, если бы мой "css-файл" был .php-файлом с

<?php
header("Content-type: text/css");
/* Variables to be used in the following CSS heredoc */
echo <<< CSS
/* Lots of CSS code here that grabs calculated variables when I need them */
CSS;
?>

В стеке LAMP это кажется мне значительно более универсальным и простым, чем установка дополнительных компиляторов SCSS / Less / Sass и следование их синтаксису, и позволяет использовать полный язык.

Тем не менее, я вижу, что SCSS / Less / Sass все время используется в стеках LAMP, и технику заголовка, которую я почти никогда не вижу, используют, кроме себя и нескольких редких других.Я пробовал оба SCSS / Less / Sass несколько раз, и меня просто раздражали ограничения.Что мне не хватает?

Какие функции, предоставляемые SCSS / Less / Sass, отсутствуют при простом создании PHP, поданного с объявлением заголовка css?

(Единственное, что я нашел самостоятельно, эточто старые версии IE будут настаивать на том, чтобы расширение .php рассматривалось как -не-файл css, но это легко решается с помощью перенаправления в одну или две строки .htaccess,

, но это незначительное одноразовое неудобствоне компенсирует потерю функциональности?).

1 Ответ

0 голосов
/ 02 июня 2018

Sass может обрабатывать намного больше, чем просто переменные.Если вы думаете, что это единственное / главное преимущество Sass,

, вы действительно хотите покопаться в документах немного подробнее .

Прежде всего, одно из самых полезныхВозможности позволяют вкладывать то, что не разрешено собственным CSS.Это позволяет вам логически группировать ваши правила, так что:

#main {
    // some rules
}

#main .p {
    // some more rules
}

становится чище (и, что более важно, чище с точки зрения логики / читаемости):

#main {
    // some rules

    p {
        // some rules just for paragraphs
    }
}

Это также удобно для логической группировки псевдоклассов с их элементами:

a {
    // some rules

    &:hover {
        // some rules just for the hover
    }
}

Тот же подход, что и выше, можно использовать и с медиа-запросами.Очень удобно:

#foo {
    // some rules

    @media screen and (max-width: 320px) {
        // some media queried rules
    }
}

Или для математики PHP не может обрабатывать нативно (за этим следует заумный пример, но такого рода вещи могут быть весьма полезными):

width: 1px + 1px + 1px;

Цветовая математика:

>> #777 + #777
#eeeeee

Существует большое разнообразие встроенных функций , которые вам придется дублировать в PHP.По моему опыту, цветные могут быть весьма полезными.

Последнее замечание: большинство людей, которых я видел, следуя по пути PHP-as-CSS, не выполняют никакого кеширования, требуя от PHPгенерировать CSS каждый раз.Sass компилирует до статических файлов, что проще на вашем сервере.

...