От автора: в этой главе мы рассмотрим Директивы функций. В SASS вы можете создать собственную функцию и использовать ее в контексте скрипта или применить любое значение. Функции вызываются через имя функции с любыми параметрами.
В следующем примере продемонстрировано использование директивы функции в файле SCSS: function_directive.htm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<html> <head> <title>Nested Rules</title> <link rel = "stylesheet" type = "text/css" href = "style.css" /> <link rel = "stylesheet" href = "//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <script src = "//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script src = "//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> </head> <body> <div class = "container" id = "set_width"> <h2>Example for Function directives</h2> <p>SASS stands for Syntactically Awesome Stylesheet. </p> </div> </body> </html> |
Затем создайте файл style.scss.
1 2 3 4 5 6 |
$first-width: 5px; $second-width: 5px; @function adjust_width($n) { @return $n * $first-width + ($n - 1) * $second-width; } #set_width { padding-left: adjust_width(10); } |
С помощью следующей команды вы можете указать SASS просматривать файл и обновлять CSS каждый раз, когда изменяется файл SASS:
1 |
sass --watch C:\ruby\lib\sass\style.scss:style.css |
Затем выполните приведенную выше команду; она автоматически создаст файл style.css со следующим кодом:
1 2 3 |
#set_width { padding-left: 95px; } |
Результат на выходе
Давайте выполним следующие действия, чтобы увидеть, как работает приведенный выше код:
Сохраните приведенный выше HTML-код в файле function_directive.html.
Откройте этот HTML-файл в браузере, вы должны увидеть следующее:
Директивы функций Sass
Вы можете видеть, что при выводе применяется отступ слева. Так же, как и миксин, функция может обращаться к глобально определенным переменным и принимать параметры. Вам нужно вызвать для функции возвращаемое значение через @return. Мы можем вызвать определенную в SASS функцию, используя параметры ключевых слов. Вызовите вышеуказанную функцию, как показано ниже.
1 |
#set_width { padding-left: adjust_width($n: 10); } |
Конвенция имен
Чтобы избежать конфликтов имен, имена функций могут задаваться с префиксом, чтобы их можно было легко дифференцировать. Подобно миксинам, определяемыми пользователем функциями также поддерживаются аргументы переменных. В функциях и других идентификаторах SASS могут взаимозаменяемо использовать символы подчеркивания (_) и дефиса (-). Например, если функция определена с именем adjust_width, ее можно использовать и как adjust-width, и наоборот.
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.