LESS (язык стилей): различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
актуальные версии программного обеспечения лучше брать с Викиданных, там они регулярнее обновляются |
|||
(не показано 20 промежуточных версий 13 участников) | |||
Строка 1: | Строка 1: | ||
{{другие значения|less (значения)}} |
{{другие значения|less (значения)}} |
||
{{карточка языка программирования |
{{карточка языка программирования |
||
| name |
| name = LESS |
||
| logo |
| logo = LESS Logo.svg |
||
| year |
| year = 2009 |
||
| paradigm |
| paradigm = |
||
| designer |
| designer = Alexis Sellier |
||
| developer |
| developer = Alexis Sellier, Дмитрий Фадеев |
||
| typing = [[Динамическая типизация|динамическая]] |
| typing = [[Динамическая типизация|динамическая]] |
||
| influenced_by = [[CSS]], [[Sass]] |
| influenced_by = [[CSS]], [[Sass]] |
||
Строка 16: | Строка 16: | ||
}} |
}} |
||
'''LESS''' — это динамический язык стилей, который разработал Alexis Sellier. Он создан под влиянием языка стилей [[Sass]], и, в свою очередь, оказал влияние на его новый синтаксис «SCSS», в котором также использован синтаксис, являющийся расширением [[Cascading Style Sheets|СSS]]<ref name="compare">[http://nex-3.com/posts/83-sass-and-less Sass and Less]</ref>. |
'''LESS''' (Leaner Style Sheets, компактная таблица стилей) — это динамический язык стилей, который разработал Alexis Sellier. Он создан под влиянием языка стилей [[Sass]], и, в свою очередь, оказал влияние на его новый синтаксис «SCSS», в котором также использован синтаксис, являющийся расширением [[Cascading Style Sheets|СSS]]<ref name="compare">[http://nex-3.com/posts/83-sass-and-less Sass and Less] {{webarchive|url=https://web.archive.org/web/20090621074106/http://nex-3.com/posts/83-sass-and-less |date=2009-06-21 }}</ref>. |
||
LESS — это продукт с [[Открытое программное обеспечение|открытым исходным кодом]]. Его первая версия была написана на [[Ruby]], однако в последующих версиях было решено отказаться от использования этого языка программирования в пользу [[JavaScript]]. Less — это вложенный [[метаязык]]: валидный CSS будет валидной less-программой с аналогичной [[семантика (программирование)|семантикой]]. |
LESS — это продукт с [[Открытое программное обеспечение|открытым исходным кодом]]. Его первая версия была написана на [[Ruby]], однако в последующих версиях было решено отказаться от использования этого языка программирования в пользу [[JavaScript]]. Less — это вложенный [[метаязык]]: валидный CSS будет валидной less-программой с аналогичной [[семантика (программирование)|семантикой]]. |
||
LESS обеспечивает следующие расширения CSS: [[переменная (программирование)|переменные]], вложенные блоки, [[миксин]]ы, [[оператор (программирование)|операторы]] и [[функция (программирование)|функции]]<ref name="main"> |
LESS обеспечивает следующие расширения CSS: [[переменная (программирование)|переменные]], вложенные блоки, [[миксин]]ы, [[оператор (программирование)|операторы]] и [[функция (программирование)|функции]]<ref name="main">{{Cite web |url=http://lesscss.org/ |title=официальный сайт LESS |access-date=2012-03-31 |archive-date=2022-01-19 |archive-url=https://web.archive.org/web/20220119152154/https://lesscss.org//// |deadlink=no }}</ref>. |
||
LESS может работать на стороне клиента ([[Internet Explorer 6]]+, [[WebKit]], [[Firefox]]) или на стороне сервера под управлением [[Node.js]] или [[Rhino]]<ref name="main" />. |
LESS может работать на стороне клиента ([[Internet Explorer 6]]+, [[WebKit]], [[Firefox]]) или на стороне сервера под управлением [[Node.js]] или [[Rhino]]<ref name="main" />. |
||
Строка 53: | Строка 53: | ||
<source lang="css"> |
<source lang="css"> |
||
.rounded-corners (@radius: |
.rounded-corners (@radius: 4px) { |
||
-webkit-border-radius: @radius; |
-webkit-border-radius: @radius; |
||
-moz-border-radius: @radius; |
-moz-border-radius: @radius; |
||
Строка 70: | Строка 70: | ||
<source lang="css"> |
<source lang="css"> |
||
#header { |
#header { |
||
-webkit-border-radius: |
-webkit-border-radius: 4px; |
||
-moz-border-radius: |
-moz-border-radius: 4px; |
||
border-radius: |
border-radius: 4px; |
||
} |
} |
||
#footer { |
#footer { |
||
Строка 153: | Строка 153: | ||
== Сравнение с другими препроцессорами CSS == |
== Сравнение с другими препроцессорами CSS == |
||
И [[Sass]], и LESS — это препроцессоры CSS, позволяющие писать ясный CSS с использованием программных конструкций вместо статических правил<ref name="whats-wrong-with-css"> |
И [[Sass]], и LESS — это препроцессоры CSS, позволяющие писать ясный CSS с использованием программных конструкций вместо статических правил<ref name="whats-wrong-with-css">{{Cite web |url=http://www.codinghorror.com/blog/2010/04/whats-wrong-with-css.html |title=What’s Wrong With CSS |access-date=2012-03-31 |archive-date=2014-01-31 |archive-url=https://web.archive.org/web/20140131030742/http://www.codinghorror.com/blog/2010/04/whats-wrong-with-css.html |deadlink=no }}</ref>. |
||
LESS вдохновлен Sass<ref name="about"> |
LESS вдохновлен Sass<ref name="about">{{Cite web |url=http://lesscss.org/about |title=About LESS |access-date=2012-03-31 |archive-date=2020-07-18 |archive-url=https://web.archive.org/web/20200718063750/http://lesscss.org/about |deadlink=no }}</ref>. Sass был спроектирован с целью как упростить, так и расширить CSS, в первых версиях фигурные скобки были исключены из синтаксиса (этот синтаксис называется '''sass'''). LESS разработан с целью быть как можно ближе к CSS, поэтому у них идентичный синтаксис. В результате существующие CSS можно использовать в качестве LESS-кода. Новые версии Sass также включают CSS-подобный синтаксис, который называется SCSS (Sassy CSS)<ref name="compare" />. |
||
Подробное сравнение синтаксиса см. «Sass/Less Comparison»<ref> |
Подробное сравнение синтаксиса см. «Sass/Less Comparison»<ref>{{Cite web |url=https://gist.github.com/674726 |title=Sass/Less Comparison |access-date=2012-03-31 |archive-date=2019-10-18 |archive-url=https://web.archive.org/web/20191018040127/https://gist.github.com/674726 |deadlink=no }}</ref>. |
||
ZUSS ([[ZK]] User-interface Style Sheet)<ref> |
ZUSS ([[ZK]] User-interface Style Sheet)<ref>{{Cite web |url=http://github.com/tomyeh/ZUSS |title=ZUSS |access-date=2012-03-31 |archive-date=2018-06-11 |archive-url=https://web.archive.org/web/20180611010833/https://github.com/tomyeh/ZUSS |deadlink=no }}</ref> это язык стилей, основанный на идеях LESS. Он имеет аналогичный синтаксис, за исключением того, что предназначен для использования на стороне сервера вместе с языком программирования [[Java]]. Он не использует интерпретатора JavaScript ([[Rhino]]), но позволяет напрямую вызывать Java-методы. |
||
== Использование == |
== Использование == |
||
LESS можно использовать на сайте различными способами. Один из вариантов — подключение к веб-странице [[JavaScript]]-файла less.js для преобразования кода в CSS «на лету», средствами браузера. |
LESS можно использовать на сайте различными способами. Один из вариантов — подключение к веб-странице [[JavaScript]]-файла less.js с его официального сайта lesscss.org для преобразования кода в CSS «на лету», средствами браузера. |
||
Это делается, например, с помощью следующего html-кода: |
Это делается, например, с помощью следующего html-кода: |
||
Строка 171: | Строка 171: | ||
</source> |
</source> |
||
Если вы используете серверный JavaScript |
Если вы используете серверный JavaScript [[Rhino]] или [[node.js]], вы можете преобразовывать .less-файлы в .css на стороне сервера. |
||
Наконец существуют сторонние реализации языка: к примеру SimpLESS [[Открытое программное обеспечение|open source]] компилятор для [[Windows]], [[Linux]] и [[Mac OS X]]<ref> |
Наконец, существуют сторонние реализации языка: к примеру, SimpLESS [[Открытое программное обеспечение|open source]] компилятор для [[Windows]], [[Linux]] и [[Mac OS X]]<ref>{{Cite web |url=http://wearekiss.com/simpless |title=SimpLESS — your LESS CSS compiler |access-date=2012-03-31 |archive-date=2013-07-29 |archive-url=https://web.archive.org/web/20130729034721/http://wearekiss.com/simpless |deadlink=yes }}</ref>, .less{} — реализация для [[.NET framework]]<ref>{{Cite web |url=http://www.dotlesscss.org/ |title=Less Css for .Net |access-date=2012-03-31 |archive-date=2012-04-02 |archive-url=https://web.archive.org/web/20120402160422/http://www.dotlesscss.org/ |deadlink=no }}</ref> или lessphp<ref>[http://leafo.net/lessphp/ lessphp] {{Wayback|url=http://leafo.net/lessphp/ |date=20121102133245 }}: [http://techportal.ibuildings.com/2010/12/17/lessphp-php-implementation-of-less-css/ Robert Raszczynski. lessphp: PHP implementation of Less CSS] {{webarchive|url=https://web.archive.org/web/20120415232211/http://techportal.ibuildings.com/2010/12/17/lessphp-php-implementation-of-less-css/ |date=2012-04-15 }}</ref>, позволяющий компилировать less-стили на стороне сервера для [[PHP]]-сайтов. |
||
== Примечания == |
== Примечания == |
||
Строка 179: | Строка 179: | ||
== Литература == |
== Литература == |
||
* {{книга|автор=Alex Libby|заглавие=Instant LESS CSS Preprocessor How-to|ссылка= |
* {{книга|автор=Alex Libby|заглавие=Instant LESS CSS Preprocessor How-to|ссылка=https://books.google.ru/books?id=mD2RipDgLQcC|издательство={{нп3|Packt Publishing}}|год=2013|allpages=80|isbn=9781782163770}} |
||
* {{книга|автор=Antony Kennedy, Inayaili de Leon|часть=Ch. 9. Dynamic CSS → LESS|заглавие=Pro CSS for High Traffic Websites|ссылка= |
* {{книга|автор=Antony Kennedy, Inayaili de Leon|часть=Ch. 9. Dynamic CSS → LESS|заглавие=Pro CSS for High Traffic Websites|ссылка=https://books.google.ru/books?id=fAKqKhXdvlwC|издательство=[[Apress]]|год=2011|серия=Expert's voice in web design|pages=260-279|allpages=432|isbn=9781430232896}} |
||
* {{cite web|url=http://coding.smashingmagazine.com/2011/09/09/an-introduction-to-less-and-comparison-to-sass/|title=An Introduction To LESS, And Comparison To Sass|author=Jeremy Hixon|date=2011-09-09|publisher= |
* {{cite web|url=http://coding.smashingmagazine.com/2011/09/09/an-introduction-to-less-and-comparison-to-sass/|title=An Introduction To LESS, And Comparison To Sass|author=Jeremy Hixon|date=2011-09-09|publisher=[[Smashing Magazine]]|accessdate=2012-03-31|archiveurl=https://www.webcitation.org/67h0O7quT?url=http://coding.smashingmagazine.com/2011/09/09/an-introduction-to-less-and-comparison-to-sass/|archivedate=2012-05-16|deadurl=yes}} |
||
* {{книга|автор=Jeremy Foster|часть=App. A. CSS Libraries and Resources → LESS|заглавие=CSS for Windows 8 App Development|ссылка= |
* {{книга|автор=Jeremy Foster|часть=App. A. CSS Libraries and Resources → LESS|заглавие=CSS for Windows 8 App Development|ссылка=https://books.google.ru/books?id=ouZdAlif4RwC|издательство=[[Apress]]|год=2013|серия=Expert's voice in Windows 8|pages=261-265|allpages=312|isbn=9781430249849}} |
||
* {{книга|автор=Jennifer Niederst Robbins |часть=Ch. 18. CSS Techniques → Sass and LESS|заглавие=Learning Web Design. Fourth Edition |издательство=[[O'Reilly]]|год=2012|pages=433|allpages=621|isbn= 978-1-449-31927-4}} |
* {{книга|автор=Jennifer Niederst Robbins |часть=Ch. 18. CSS Techniques → Sass and LESS|заглавие=Learning Web Design. Fourth Edition |ссылка=https://archive.org/details/learningwebdesig00robb_505 |издательство=[[O'Reilly]]|год=2012|pages=[https://archive.org/details/learningwebdesig00robb_505/page/n550 433]|allpages=621|isbn= 978-1-449-31927-4}} |
||
* {{cite web|url=http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/get-into-less-the-programmable-stylesheet-language/|title=Get Into LESS: the Programmable Stylesheet Language|author=Daniel Pataki|date=2011-12-13|publisher=tuts+|accessdate=2012-03-31|archiveurl= |
* {{cite web|url=http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/get-into-less-the-programmable-stylesheet-language/|title=Get Into LESS: the Programmable Stylesheet Language|author=Daniel Pataki|date=2011-12-13|publisher=tuts+|accessdate=2012-03-31|archiveurl=https://www.webcitation.org/67h0PxgH8?url=http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/get-into-less-the-programmable-stylesheet-language/|archivedate=2012-05-16|deadurl=yes}} + перевод [http://habrahabr.ru/post/136525/ LESS: программируемый язык стилей] |
||
== См. также == |
|||
* [[PostCSS]] |
|||
== Ссылки == |
== Ссылки == |
||
* [http://lesscss.org/ |
* [http://lesscss.org/ Официальный сайт] |
||
* {{GitHub|cloudhead|less.js|LESS}} |
|||
* [https://github.com/cloudhead/less.js репозиторий исходного кода LESS] на [[GitHub]] |
|||
* [http://komaval.github.io/lesscss.org/ Украиноязычный сайт LESS] |
|||
Строка 197: | Строка 199: | ||
[[Категория:Библиотеки JavaScript]] |
[[Категория:Библиотеки JavaScript]] |
||
[[Категория:Свободные библиотеки программ]] |
[[Категория:Свободные библиотеки программ]] |
||
[[Категория:Программное обеспечение с лицензией Apache |
[[Категория:Программное обеспечение с лицензией Apache]] |
Текущая версия от 19:30, 9 января 2024
LESS | |
---|---|
Класс языка | Язык описания стилей, свободное программное обеспечение, препроцессор и библиотека функций |
Появился в | 2009 |
Автор | Alexis Sellier |
Разработчик | Alexis Sellier, Дмитрий Фадеев |
Выпуск | |
Система типов | динамическая |
Испытал влияние | CSS, Sass |
Повлиял на | Sass, Less Framework |
Лицензия | Apache License 2 |
Сайт | lesscss.org |
ОС | кроссплатформенность |
LESS (Leaner Style Sheets, компактная таблица стилей) — это динамический язык стилей, который разработал 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.2.1 — 2024.
- ↑ 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