LESS
| LESS | |
|---|---|
| | |
| Класс языка | Язык описания стилей, свободное программное обеспечение, препроцессор и библиотека функций |
| Появился в | 2009 |
| Автор | Alexis Sellier |
| Разработчик | Alexis Sellier, Дмитрий Фадеев |
| Выпуск | |
| Система типов | динамическая |
| Испытал влияние | CSS, Sass |
| Повлиял на | Sass, Less Framework |
| Лицензия | Apache License 2 |
| Сайт | lesscss.org |
| ОС | кроссплатформенность |
LESS (Leaner Style Sheets, компактная таблица стилей) — это динамический язык стилей (препроцессор CSS), который разработал Alexis Sellier. Он создан под влиянием языка стилей Sass, и, в свою очередь, оказал влияние на его новый синтаксис «SCSS», в котором также использован синтаксис, являющийся расширением СSS[2].
LESS — это продукт с открытым исходным кодом. Его первая версия была написана на Ruby, однако в последующих версиях было решено отказаться от использования этого языка программирования в пользу JavaScript. Less — это вложенный метаязык: валидный CSS будет валидной less-программой с аналогичной семантикой.
LESS обеспечивает следующие расширения CSS: переменные, вложенные блоки, миксины, операторы и функции[3].
LESS может работать на стороне клиента (Internet Explorer 6+, WebKit, Firefox) или на стороне сервера под управлением Node.js или Rhino[3].
Переменные
Less позволяет использовать переменные. Имя переменной предваряется символом @. В качестве знака присваивания используется двоеточие (:).
При трансляции значение переменной подставляется в результирующий CSS документ[3].
@color: #4D926F;
#header {
color: @color;
}
h2 {
color: @color;
}
Данный LESS-код будет скомпилирован в следующий CSS-файл:
#header {
color: #4D926F;
}
h2 {
color: #4D926F;
}
Примеси
Примеси позволяют включать целый набор свойств из одного набора правил в другой путём включения имени класса в качестве одного из свойств другого класса. Такое поведение можно рассматривать как разновидность констант или переменных. Они также могут вести себя подобно функциям, принимая аргументы. В чистом CSS повторяющийся код должен быть повторён в нескольких местах — примеси делают код чище, понятнее и упрощают его изменение[3].
.rounded-corners (@radius: 4px) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
border-radius: @radius;
}
#header {
.rounded-corners;
}
#footer {
.rounded-corners(10px);
}
Данный LESS-код будет скомпилирован в следующий CSS-файл:
#header {
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
#footer {
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
}
Вложенные правила
LESS даёт возможность вкладывать определения вместо либо вместе с каскадированием. Пусть, например, у нас есть такой CSS: CSS поддерживает логическое каскадирование, но один блок кода в другой вложен быть не может. Less позволяет вложить один селектор в другой. Это делает наследование более ясным и укорачивает таблицы стилей[3].
#header {
h1 {
font-size: 26px;
font-weight: bold;
}
p { font-size: 12px;
a { text-decoration: none;
&:hover { border-width: 1px }
}
}
}
Данный LESS-код будет скомпилирован в следующий CSS-файл:
#header h1 {
font-size: 26px;
font-weight: bold;
}
#header p {
font-size: 12px;
}
#header p a {
text-decoration: none;
}
#header p a:hover {
border-width: 1px;
}
Функции и операции
Less позволяет использовать операции и функции. Благодаря операциям можно складывать, вычитать, делить и умножать значения свойств и цветов, что можно использовать для создания сложных отношений между свойствами. Функции один-к-одному отображаются в JavaScript код, позволяя обрабатывать значения.
@the-border: 1px;
@base-color: #111;
@red: #842210;
#header {
color: @base-color * 3;
border-left: @the-border;
border-right: @the-border * 2;
}
#footer {
color: @base-color + #003300;
border-color: desaturate(@red, 10%);
}
Данный LESS-код будет скомпилирован в следующий CSS-файл:
#header {
color: #333;
border-left: 1px;
border-right: 2px;
}
#footer {
color: #114411;
border-color: #7d2717;
}
Сравнение с другими препроцессорами CSS
И Sass, и LESS — это препроцессоры CSS, позволяющие писать ясный CSS с использованием программных конструкций вместо статических правил[4].
LESS вдохновлен Sass[5]. Sass был спроектирован с целью как упростить, так и расширить CSS, в первых версиях фигурные скобки были исключены из синтаксиса (этот синтаксис называется sass). LESS разработан с целью быть как можно ближе к CSS, поэтому у них идентичный синтаксис. В результате существующие CSS можно использовать в качестве LESS-кода. Новые версии Sass также включают CSS-подобный синтаксис, который называется SCSS (Sassy CSS)[2].
Подробное сравнение синтаксиса см. «Sass/Less Comparison»[6].
ZUSS (ZK User-interface Style Sheet)[7] это язык стилей, основанный на идеях LESS. Он имеет аналогичный синтаксис, за исключением того, что предназначен для использования на стороне сервера вместе с языком программирования Java. Он не использует интерпретатора JavaScript (Rhino), но позволяет напрямую вызывать Java-методы.
Использование
LESS можно использовать на сайте различными способами. Один из вариантов — подключение к веб-странице JavaScript-файла less.js с его официального сайта lesscss.org для преобразования кода в CSS «на лету», средствами браузера.
Это делается, например, с помощью следующего html-кода:
<link rel="stylesheet/less" type="text/css" href="styles.less">
<script src="less.js" type="text/javascript"></script>
Если вы используете серверный JavaScript Rhino или node.js, вы можете преобразовывать .less-файлы в .css на стороне сервера.
Наконец, существуют сторонние реализации языка: к примеру, SimpLESS open source компилятор для Windows, Linux и Mac OS X[8], .less{} — реализация для .NET framework[9] или lessphp[10], позволяющий компилировать less-стили на стороне сервера для PHP-сайтов.
Примечания
- ↑ Release 4.6.3 — 2026.
- ↑ 1 2 Sass and Less Архивировано 21 июня 2009 года.
- ↑ 1 2 3 4 5 официальный сайт LESS. Дата обращения: 31 марта 2012. Архивировано 19 января 2022 года.
- ↑ What’s Wrong With CSS. Дата обращения: 31 марта 2012. Архивировано 31 января 2014 года.
- ↑ About LESS. Дата обращения: 31 марта 2012. Архивировано 18 июля 2020 года.
- ↑ Sass/Less Comparison. Дата обращения: 31 марта 2012. Архивировано 18 октября 2019 года.
- ↑ ZUSS. Дата обращения: 31 марта 2012. Архивировано 11 июня 2018 года.
- ↑ SimpLESS — your LESS CSS compiler. Дата обращения: 31 марта 2012. Архивировано из оригинала 29 июля 2013 года.
- ↑ Less Css for .Net. Дата обращения: 31 марта 2012. Архивировано 2 апреля 2012 года.
- ↑ lessphp Архивная копия от 2 ноября 2012 на Wayback Machine: Robert Raszczynski. lessphp: PHP implementation of Less CSS Архивировано 15 апреля 2012 года.
Литература
- Alex Libby. Instant LESS CSS Preprocessor How-to. — Packt Publishing[англ.], 2013. — 80 p. — ISBN 9781782163770.
- Antony Kennedy, Inayaili de Leon. Ch. 9. Dynamic CSS → LESS // Pro CSS for High Traffic Websites. — Apress, 2011. — P. 260-279. — 432 p. — (Expert's voice in web design). — ISBN 9781430232896.
- Jeremy Hixon. An Introduction To LESS, And Comparison To Sass. Smashing Magazine (9 сентября 2011). Дата обращения: 31 марта 2012. Архивировано из оригинала 16 мая 2012 года.
- Jeremy Foster. App. A. CSS Libraries and Resources → LESS // CSS for Windows 8 App Development. — Apress, 2013. — P. 261-265. — 312 p. — (Expert's voice in Windows 8). — ISBN 9781430249849.
- Jennifer Niederst Robbins. Ch. 18. CSS Techniques → Sass and LESS // Learning Web Design. Fourth Edition. — O'Reilly, 2012. — P. 433. — 621 p. — ISBN 978-1-449-31927-4.
- Daniel Pataki. Get Into LESS: the Programmable Stylesheet Language. tuts+ (13 декабря 2011). Дата обращения: 31 марта 2012. Архивировано из оригинала 16 мая 2012 года. + перевод LESS: программируемый язык стилей
См. также
Ссылки
- Официальный сайт
- Проект LESS на сайте GitHub
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.