Как показать скомпилированный CSS из файла .less в браузере? - PullRequest
3 голосов
/ 21 марта 2012

Каков наилучший способ показать полученный CSS из файлов, скомпилированных с less.js в клиенте.Другими словами, как я могу заполнить div полученным css?

Мне нужно отобразить результат на странице, как это сделать?

Спасибо!

Ответы [ 3 ]

5 голосов
/ 15 августа 2014

обновление

Как уже отмечалось в комментариях @ertrzyiks, вы должны заменить less.parse на less.render для Less v 2.x:

var lessCode = '';
var xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = function(){
  if(xmlhttp.status == 200 && xmlhttp.readyState == 4){
    var options = {}
    lessCode = xmlhttp.responseText;
    less.render(lessCode, options, function (error, output) {
    if(!error) {
    document.getElementById('lesscode').innerHTML = output.css;
    }
    else document.getElementById('lesscode').innerHTML = '<span style="color:red">' + error + '</span>';
    });

  }
};
xmlhttp.open("GET","important.less",true);
xmlhttp.send();

см. Также: Как обнаружить и распечатать изменяющиеся переменные LESS

Но так как Less v2:

В браузере less.pageLoadFinished будет обещанием, разрешенным, когда Меньше закончил свою первоначальную обработку. меньше. обновить и less.modifyVars также возвращает обещания.

Когда вы компилируете filename.less скомпилированный код CSS был вставлен в тег style с id less:filename, поэтому для получения скомпилированного кода CSS вы также можете использовать:

less.pageLoadFinished.then(
    function() {
        console.log(document.getElementById('less:filename').innerHTML);
    }
); 

Обратите внимание, что в последнем примере также применяется скомпилированный код CSS на странице.

- конец обновления

Я ожидал, что возможно выполнить что-то вроде следующего:

    <link rel="stylesheet/less" type="text/css" href="important.less">
    <script src="less-1.7.3.js" type="text/javascript"></script>

    <script>
    css = less.tree.toCSS();
    console.log(css);
    </script>

к сожалению, это не работает, но вы можете использовать следующий код, чтобы получить то, что вы хотите:

    <script src="less-1.7.3.js" type="text/javascript"></script>
    <script>
    var lessCode = '';
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function(){
      if(xmlhttp.status == 200 && xmlhttp.readyState == 4){
        lessCode = xmlhttp.responseText;
        new(less.Parser)().parse(lessCode, function (e, tree) {
        document.getElementById('lesscode').innerHTML = tree.toCSS().replace(/\n/g,"<br>");
        });

      }
    };
    xmlhttp.open("GET","important.less",true);
    xmlhttp.send();
    </script>

С в разделе body вашего HTML:

<div id="lesscode"></div>

См. Также: Объединение двух файлов .less в один и Как открыть файл на локальном диске с помощью Javascript?

0 голосов
/ 21 марта 2012

У вас есть два варианта сделать это, Internet Explorer или Firefox.

Давайте начнем с Firefox.Если вы установите панель инструментов веб-разработчика , вы получите пункт меню с надписью CSS.Нажав на это, вы получите несколько вариантов, и если вы выберете View CSS, вы попадете на новую вкладку, которая показывает вам все стили страницы, сгруппированные по их расположению, и вы должны увидеть раздел с сгенерированным CSSLESS и динамически применяется к элементам.

IE также имеет опцию веб-разработчика, и если вы используете панель инструментов для проверки элемента, вы можете использовать сочетание клавиш Ctrl + T, которое вызоветисходный код страницы с вычисленными стилями.

Решение Firefox лучше, так как вы можете точно видеть, какие стили были предоставлены LESS, тогда как IE просто объединяет все вместе.

Существует третий варианти это для компиляции серверной части CSS!

0 голосов
/ 21 марта 2012

Я просто использую Элемент проверки Chrome .

Щелкните правой кнопкой мыши на элементе CSS, который вы ищете, щелкните правой кнопкой мыши и выберите Проверить элемент . Справа вы найдете скомпилированный CSS в стилях. Надеюсь, это поможет

...