Почему не работает less

подключение Less

Опции темы

Доброго времени суток.
Решил поближе познакомиться с less. Но сразу же возникла проблема с подключением
Вот как выглядит мой html

в корне html файла находятся файл styles.less и less.js ( в который я запихнул код с офф сайта https://raw.github.com/less/less.js/. s-1.4.1.min.js )

Открываю файл styles.less, прописываю там 1 свойство для проверки

И ничего не происходит.
Что я делаю не так ?

  • 0

Dikucher

Только что проделал всё что вы сказали, у меня рабоает всё. да и судя по коду всё правильно

проверьте ещё разочек расположение файлов. Посмотрите через FireBug или оперу пути к файлам, какой файл не открывается и т.д.

  • 1

DarkAngel-163

Спасибо сказали:

  • 0

Olexandr

вот что увидел в консоли хрома в Resources

Но не знаю, что мне с этим делать

  • 0

Dikucher

есть еще 1 нюанс
Фон мой таки заработал если я открываю через мозилу и сафари.
На хроме, ИЕ10, опере без изменений. ( на хроме и опере webkit, походу на нем стоят какие то настройки блокировки, ну а ИЕ . )

Ну вообщем вопрос по прежнему открыт, почему же webkit не видит less ?

  • 0

Dikucher

В хроме не работает, если открыть просто как файл в браузере. Но если делать то же самое на хостинге (денвере), то всё нормально.

  • 1

Morgan

Спасибо сказали:

На локальном сервере не проверял, но как по мне, это странное поведение.
Можно ли как-то хром заставить работать с less ?
( без локального сервера )

  • 0

Dikucher

Dikucher,less работает без проблем на хостинге, но.. малейшая ошибка в коде less и все вылетает,css это прощает. Если интиресно сейчас делаю сайт на less _moderator.com.ua

  • 0

Valerij

Valerij, показывает ли где ошибка ? ( редактор или при компиляции) использую webstorm и Winless.
Все равно планирую на конечном этапе компилировать .less в .css и подключать только .css без .less
По сайту, понравилось верхнее меню.
Недавно наткнулся на статью про верстку ссылок. Идея была в том, чтобы подчеркивание делать не через text-decoration: underline а через padding-bottom: 3px ,border-bottom : 1px solid #color. Просто как правило эта underline режет буквы снизу.

Проблема с web-kit остается открытой

  • 0

Dikucher

Dikucher,Я использую простой NotePad ++. Если вылетели стили более внимательно просматриваю less, и как правило видеш свою тупость и невнимательность Есть прекрасный метод выявления ошибок «Ловля одного льва в пыстыне» (может ошибся с названием). Делиш пополом ВЕСЬ код и проверяеш в какой части ошибка, и так далее PS. Подключи modernizr.js

Последний раз редактировалось Valerij; 18.07.2013 в 00:50 .

Источник

Не удается подключить LESS к проекту

Делаю всё по науке — качаю less.min.js отсюда lesscss.ru, кладу в папку проекта, подключаю к страничке следующим образом:

В styles.less у меня лежат стили в less, в less.min.js, соответственно, сам скрипт, но почему-то ничего не подключается. Браузер пишет следующую ошибку:

Failed to load file:///C:/%D0%9F%D0%BE%D1%80%D1%82%D1%84%D0%BE%D0%BB%D0%B8%D0%BE/Site/public/styles.less: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

Вопрос — в чем же тут дело? less в файле валидный, проверено Winless.

1 ответ 1

Большое спасибо за наводку, совершенно забыла про политику безопасности.:)

Пока решала проблему локальным сервером, выяснила, что данный способ подключения стилей к проекту вообще не является оптимальным с точки зрения лишней работы, выполняемой клиентом, и лучше использовать альтернативный — собирать всё (и стили в том числе) в бандл, и подключать уже готовый файл js.

На всякий случай, рецепт — для сборки я использовала Webpack. Для того, чтобы он прочитал стили в less, помимо Webpack, нужно установить загрузчики less-loader, сss-loader, style-loader, и настроить файл webpack.config.js следующим образом:

В entry указывается файл, который надо собрать, а в output — файл, получаемый на выходе. В loader перечисляем загрузчики для обработки less и css, а в test пишем регулярку, по которой загрузчики находят, какой файл следует обработать. В файле app.js должен быть подключен файл со стилями:

Теперь после запуска Webpack получаем файл bundle.js, содержащий всю js-логику, стили и зависимости, который и подключаем в index.html:

Спасибо за ваш ответ на Stack Overflow на русском!

  • Пожалуйста, убедитесь, что публикуемое сообщение отвечает на поставленный вопрос. Предоставьте как можно больше деталей, расскажите про проведенное исследование!
  • Просьб помощи, уточнений или ответов на темы не относящиеся к вопросу.
  • Ответов основанных на мнениях; приводите аргументы основанные только на реальном опыте.

Также, обратите внимание на заметку в справочном центре о том, как писать ответы.

Источник

Не могу заставить работать less.js

Я не могу заставить работать less.js и понятия не имею, почему. Вот HTML, который я пробовал:

Файл less-1.0.18.min.js загружается с http: / /lesscss.googlecode.com/files/less-1.0.18.min.js. Все файлы находятся в одной папке. Понятия не имею, почему это не работает .

Протестировано в Chrome 12.0.742.100

Изменить

Пробовал последний файл less.js (less-1.1.3.min.js). Тот тоже не работал.

Хорошо .

Но только как обычный css, не менее специфичная разметка.

Это не работает вообще:

Кроме того, это не работает:

Что за черт? Как мне заставить работать меньше?

Обнаружил ошибку

P.S.S. Сценарий браузера Less.js в настоящее время не работает, если вы используете Chrome и путь к вашей странице начинается с «file: ///» из-за известной проблемы с Chrome.

4 ответа

P.S.S. Сценарий браузера Less.js в настоящее время не работает, если вы используете Chrome и путь к вашей странице начинается с «file: ///» из-за известного Проблема с Chrome.

Но что мы могли сделать, так это настроить локальную среду тестирования с помощью wamp (pc) или mamap (mac). Тогда все будет хорошо.

К вашей ссылке css.

Несмотря на то, что это было опубликовано некоторое время назад, я подумал, что добавлю кое-что для других людей, застрявших на этом.

Источник

LESS: программируемый язык стилей

Что такое LESS?

LESS – это надстройка над CSS. Это значит, что любой CSS код – это валидный LESS, но дополнительные элементы LESS не будут работать в простом CSS. Это замечательно, потому что существующий CSS уже является работоспособным LESS кодом, что уменьшает порог вхождения в новую технологию.
LESS добавляет много нужных динамических свойств в CSS. Он вводит переменные, операции, function-like элементы и примеси. Возможность писать таблицы стилей модульно избавит вас от многих хлопот.

Как использовать LESS

Есть два способа использования LESS. Вы можете создать LESS файл и конвертировать его при помощи Javascript на лету или скомпилировать его заранее и использовать получившийся CSS файл. Не бойтесь слова «компилировать» (я постоянно его использую), это очень просто.

Используем LESS и Javascript файл

Для начала нужно скачать с сайта LESS Javascript файл и привязать его к страничке как любой другой js скрипт.

Затем создадим файл с расширением .less и привяжем его с помощью такого кода:

Удостоверьтесь, что вы прикрепили LESS файл перед JS.
Теперь LESS файл будет работать также как и обычный CSS.

Компилируем LESS файл

Хотя этот способ немного утомительней, но иногда он является более предпочтительным. Чтобы не конвертировать код при каждой загрузке страницы можно использовать результирующий CSS файл. Конвертеры: для Windows – Winless и LESS.app для Мака.

Укрощаем мощь LESS

Наконец давайте немного развлечемся – попишем LESS код. Как вы увидите код очень легко читать и понимать, так как используется сходный с CSS синтаксис.

Переменные

Переменные в LESS работают так же как в PHP, JS и в большинстве других языков программирования. Вы можете использовать их для хранения значения, и затем использовать переменные вместо самого значения всякий раз, когда вам это нужно.

В примере выше мы объявляем переменную @header-font и записываем туда значение «Georgia». Теперь мы можем использовать эту переменную всегда, когда мы хотим установить шрифт Georgia. Если же мы решим, что Trebuchet MS лучше подходит для наших заголовков, то нам не нужно будет просматривать весь файл, мы просто изменим значение переменной.
Я нашел отличное применение переменным в определении цветов сайта. В старые добрые времена (которые были не так давно) я использовал что-то вроде этого:

Нет ничего плохого в том, чтобы документировать ваши цвета также как здесь, это хорошая практика, проблема заключается в том, что документация не имеет ничего общего с функциональностью ваших стилей. Если вы решили изменить цвета после 2000 строки кода, а затем передумали на 3567 строчке, то будет чрезвычайно сложно исправить все цвета и документацию.
С LESS мы можем модифицировать и одновременно документировать наш рабочий процесс.

Область видимости переменных

Область видимости переменных описывает места, где они доступны. Если вы определите переменную в самом начале LESS файла, то она будет доступна для любого кода написанного после.
Также можно определять переменную внутри CSS правила. В этом случае переменные не будут доступны вне этого правила, они могут быть использованы локально.

В этом примере LESS не будет сконвертирован из-за ошибки, color не определена для использования внутри элемента button. Если переменная объявлена вне элемента и внутри другого элемента, то она будет доступна только локально.

Здесь ссылка будет окрашена в белый, а у кнопки будет черный фон.

Переменные в переменных

Если вы кодили на PHP, то вы знаете что можно объявить имя переменной в другой переменной.

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

Константы и Переменные

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

Операции

Вы можете добиться невероятно точного контроля с использованием операций в LESS. Идея проста:

Код выше устанавливает переменную unit в 3px. Затем мы устанавливаем это значение в ширину рамки, отступы в три раза больше этой ширины, а поля – в два.
Можно использовать операции умножения, деления, сложения и вычитания. Что бы создать блок с рамкой увеличивающей ширину сторон по часовой стрелке, можно использовать следующий код:

Управление цветом

Моя любимая особе6нность LESS – управление цветом. Можно использовать операции для смешивания цветов и несколько специальных функций для работы с цветом.

Цветовые операции

Если вы хотите изменить значение цвета, то можете сделать это вычитанием или добавлением другого цвета.

Вышеприведённая операция с фоном увеличит каждое значение HEX на 2. Результатом будет “B64141″ — более светлый вариант оригинального цвета. Операция с рамкой уменьшит каждое значение HEX на 1 и выдаст более темный цвет: “830E0E”.
На практике есть немало случаев, когда мы начинаем с базового цвета и нуждаемся в слегка затемненном или осветленном его варианте.

Этот код создает красную кнопку с немного затемненной рамкой. Это частая ситуация и определение лишь одного цвета – большая помощь.

Другое замечательное применение этого – создание градиентов. Я обычно выбираю средний цвет и объявляю градиент исходя из него. Я делаю начало немного светлее и конец немного темнее. Результатом будет приятный переход, что-то вроде этого:

Цветовые функции

Есть гораздо больше возможностей для работы с цветом; LESS позволяет манипулировать ими на канальном уровне. Вы можете осветлять, затемнять, насыщать, обесцвечивать и вращать цвета. Взгляните на следующие примеры с картинками, чтобы понять, что каждый из них делает.

Извлечение информации о цвете

Каждый цвет в LESS конвертируется в HSL (hue, saturation, lightness), чтобы обеспечить вам контроль над уровнями каналов. Благодаря этому можно манипулировать цветами более тонко, а также получить информацию о цвете напрямую.

Это может показаться слишком мелочным – зачем нам нужна эта информация, когда мы можем просто ввести HEX значение? Если вы нормальный человек, то вы не сможете с ходу расшифровать HEX цвет. HEX значения отображают RGB спектр: первые два символа контролируют количество красного, следующие два — количество зеленого и последние два – количество синего.
Достаточно очевидно, что #ff0000 это красный, так как это RGB(255,0,0). Тона красного, никакого зеленого и синего. Тем не менее, если вы увидите #1f6b2d, то будет трудно декодировать, что это темно-зеленый. В HSL представлении hue (тон) управляет всем, вы могли бы просто назвать цвет, остальное просто задаст тон (это не совсем верно, но всё происходит именно так).
Имея это в виду, если вы нашли хороший пурпурный цвет как #e147d4, вы очень легко можете отыскать различные цвета с точно таким же оттенком. Скажем, вы хотите создать сливочную, более пастельную версию #e147d4, вот что можно сделать:

Новый цвет будет иметь тот же тон, но другие насыщенность и яркость. Результатом будет #c480bf, к которому гораздо труднее перейти от #e147d4 используя лишь HEX.

Совмещение функций

LESS позволяет использовать функции внутри функций, так, если надо обесцветить и перевернуть (spin) цвет, можно просто сделать так:

Вложенность

Во время написания CSS мы пользуемся каскадностью стилей. Чтобы изменить поля у параграфа только внутри статьи можно использовать следующий код:

Нет ничего плохого в таком подходе, но если нам надо также изменить стиль ссылок, цитат, заголовков и т.д. только внутри статьи, нужно будет использовать префикс “article.post” для каждого элемента. Это делает написание кода более скучным и усложняет его чтение.
В LESS мы можем вложить эти правила, что даст нам более короткую и логичную версию наших стилей. Например:

Отступы не обязательны, но они делают код более читабельным. Уровни вложенности не ограничены.

Примеси (mixins)

Примеси в LESS избавят вас от набора излишнего кода. Вам когда-нибудь приходилось создавать закругленную рамку в которой только верхние углы скругленны?

И так каждый раз… С LESS все это можно изменить, создав примесь. Примеси – элементы многоразового использования, которые можно добавить к любому элементу как правило. И даже не нужно изучать новый синтаксис.

В вышеприведенном коде мы определили элемент .rounded_top для округления верхних углов. Когда мы добавляем его к любому другому элементу как примесь (смотрите .tab) мы по существу импортируем правила, которые мы создали для него. Благодаря такому синтаксису мы можем использовать любой элемент в качестве примеси.

Стили у элемента .submit — это скругленные углы наверху, белый цвет и красный фон (значение #333 переопределено).

Примеси с параметрами

Примеси с параметрами, звучит сложно, они решают проблему очень простым способом. В примерах выше вы видели как мы можем определить элемент с радиусом в 6px на верхних углах. А если мы захотим создать элемент с радиусом в 3px? Мы должны объявлять разные примеси для всех пиксельных значений? Конечно же ответ нет, мы должны использовать примеси с параметрами!
Они сходны с функциями, потому что при их вызове можно менять значения. Давайте перепишем пример с border-radius, чтобы посмотреть, как это работает.

В вышеприведенном коде радиус у .tab равен 6px, а .submit элемент получит значение 3px.

Стандартные значения

Если вы обычно используете одинаковый border-radius, но иногда необходим другой, нужно задать примеси стандартное значение.

В этом примере .tab получит стандартное значение в 6px, а .submit – 3px.

Множественные параметры

Вы также можете использовать множественные параметры, чтобы определить более сложные примеси.

В этом примере класс .read_more отформатирован с отступом 4px, фоновым цветом #e7ba64 и с border-radius рывным 0px.

Используем все аргументы за раз

Еще одна опция при использовании аргументов это их объединение. Сокращённые свойства в CSS имеют множественные значения, записанные одно за другим.

Чтобы задать всем необходимым элементам серую границу, вы можете использовать такую функцию:

@arguments это специальное ключевое слово, которое выводит все параметры один за другим в заданном порядке. Результатом вышеприведённого LESS кода будет:

Параметрические примеси без параметров

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

CSS вышеприведенного кода будет таким:

Чтобы скрыть класс .alert нужно установить пустой параметр.

Готовый CSS будет следующим:

В основном это используется для уменьшения размера CSS файла.

Пространство имён

Пространство имён в языках программирования обычно используется для группировки сходных по функциональности элементов. Мы можем добиться подобного в LESS, объединяя наш код с помощью примесей.

Начиная работу над новым сайтом, основанным на вашем фреймворке, вы можете добавить связку #my_framework и использовать ее не засоряя пространство имён.

Также это отличный способ сделать возможным быструю смену и доработку тем. Если вы разрабатываете несколько тем для вашей компании, то для смены шаблонов на лету, вы можете поместить их все в один LESS файл, используя связки.

Строковая интерполяция

Строковая интерполяция это еще одно причудливое слово, означающее, что эта произвольная строка может храниться в переменной, а затем использоваться в значении свойства.

Это может быть полезно при создании централизованного фреймворка.

Экранирование

Иногда нужно использовать свойства или значения, которые не являются валидным CSS (правила для IE). Вы могли заметить, что в примере про градиенты я не позаботился о пользователях Internet Explorer.
Если вы хотите создать градиент в IE, вы должны сделать что-то вроде этого:

Этот CSS не валиден, поэтому LESS не скомпилируется. В этом случае вы можете экранировать это значение, что позволит LESS пропустить его.

Все что нужно сделать, это заключить секцию в кавычки и поставить тильду перед ней. Эта секция не пройдет через LESS процессор и не будет выкинута.

Импорт

Как и в обычном CSS вы можете импортировать файлы. LESS позволяет импортировать CSS и LESS используя следующий синтаксис:

Первый импорт достаточно очевиден. Он импортирует CSS правила определённые в reset.min.css без обработки их LESS парсером.
Второй импорт вставит содержание framework.less и обработает его как любые другие LESS правила.
Третий импорт работает также как и второй. Если расширение не установлено, то препроцессор считает его LESS файлом.

Комметарии

Естественно, многострочные комментарии доступны в LESS в таком же виде, как и в CSS. Также LESS разрешает использование однострочных комментариев как в PHP или Javascript, с помощью двойного обратного слеша.

Чего не хватает?

Несмотря на то, что LESS восхитительный, всё же когда вы начнёте использовать его, обнаружатся некоторые недостатки, хотя они не очень беспокоят.
Одна из особенностей, которую я хотел бы видеть, это пре-пре-обработка (согласен, звучит это бессмысленно).Помните, как строки могут быть экранированы, чтобы не проходить через анализатор? Текущий способ не позволяет использовать градиенты с изменяемыми цветами.

Этот код прекрасно работает, но цвета должны быть жёстко определены. Если строчка экранирована, то переменные не обрабатываются. Было бы неплохо иметь опцию, в которой переменные в экранированных строках обрабатывались до отправки в CSS файл.

Заключение

Как и с любой новой технологией или методом возникает злоупотребление. Помните отражающиеся логотипы и «стеклянные» кнопки на заре Web 2.0 эры?
Вы не обязаны вкладывать все ваши правила, вы не должны создавать переменные для всего или примеси просто для ширины рамки.
Если вы не знаете когда не использовать потрясающую мощь LESS, ваш LESS код станет таким же нечитаемым как обычный CSS и таким же сложным для поддержки. Фокус в том, чтобы знать, когда использовать данные функции и методы, а когда обычный старый CSS лучше.
В дополнение я советую не использовать LESS файл. В этом нет ничего плохого, но нет причины загружать LESS файл и обрабатывать его. Несомненно, скрипт очень быстрый, но я уверен что без него будет быстрее. Я обычно разрабатываю все мои сайты с LESS, беру выходной файл, сжимаю его и использую обычный CSS файл.

Источник

Читайте также:  Старлайн телематика не работает приложение
Оцените статью