Как показать скомпилированный CSS из файла.less в браузере?

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

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

Спасибо!

3 ответа

Решение

Обновить

Как уже указывалось в комментариях @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 v2:

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

Когда вы компилируете filename.less скомпилированный код CSS был введен в style пометить с idless: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?

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

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

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

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

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

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

Существует третий вариант, и это компилировать серверную часть CSS!

Другие вопросы по тегам