Я смотрю на использование less. js (отлично смотрится), но наш сайт требует, чтобы некоторые стили загружались динамически после начальной загрузки страницы. Кажется, однако, что все таблицы стилей LESS должны быть загружены до загрузки less.js script. т.е. это работает
<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", если они не упорядочены правильно. Требование упорядочения явно указывается в этом учебнике.
Есть ли способ загрузить меньше таблиц стилей после загрузки начальной страницы?
Обратите внимание, что этот блог описывает функцию "смотреть" -
который будет автоматически обновлять CSS всякий раз, когда вы сохраняете код LESS
поэтому представляется разумным ожидать, что после загрузки страницы я смогу добавить некоторые правила LESS. Похоже, что я что-то пропустил.
Приветствия,
Колин
UPDATE: код, используемый для проверки поведения, описанного в комментариях (менее таблица стилей, указанная после script) -
<!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;
}
}