Я использую less . js (выглядит великолепно), но наш сайт требует, чтобы некоторые стили загружались динамически после начальной загрузки страницы.Однако кажется, что все таблицы стилей LESS должны быть загружены до загрузки скрипта less.js.т. е. это работает
<link rel="stylesheet/less" href="/static/less/style.less"/>
<script src="http://lesscss.googlecode.com/files/less-1.0.30.min.js"></script>
, но не работает, если линии поменялись местами, ни Firefox, ни Chrome не пытаются загрузить style.less, если они не упорядочены правильно.Требование к порядку явно указано в этом руководстве .
Есть ли способ загрузить меньше таблиц стилей после начальной загрузки страницы?
Обратите внимание, что в этом блоге описывает функцию 'watch' -
, которая будет автоматически обновлять CSS всякий раз, когда вы сохраняете код LESS
, поэтому кажется разумным ожидать, что я смогу добавить некоторые LESS-правила после загрузки страницы.Такое ощущение, что я что-то упустил.
Cheers,
Colin
UPDATE: код, используемый для проверки поведения, описанного в комментариях (меньше таблиц стилей, перечисленных после сценария) -
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Simple</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="/static/js/less-1.0.31.min.js"></script>
<link rel="stylesheet/less" href="/static/less/style.less" id="abc123"/>
</head>
<body>
<div id="container">
<div>Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.</div>
</div>
<div id="#abc">Bingo</div>
</body>
<script>
console.log("refreshing styles...");
less.sheets.push(document.getElementById('abc123'));
//var lessStyle = $("<style>#abc { color: blue; }</style>").attr("id", "less:static-less-style").attr("type", 'text/less');
//$("head").append(lessStyle);
less.refresh(true);
console.log("refreshed...");
</script>
</html>
и меньше таблиц стилей
@primary_color: green;
.rounded(@radius: 5px) {
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
border-radius: @radius;
}
#container {
background: @primary_color;
.rounded(5px);
div {
color: red;
}
}