サーバー側のフレームワークではなく、プレーンなHTML / CSS / JavaScriptを使用していると仮定すると、これを行うにはいくつかの方法があります。1つは、実際にLESSソースコードを変更することですが、もっと簡単な方法をいくつか紹介します。
theme.lessを空白のままにしておくと、デフォルトのBootstrapテーマが表示されます。
次に、Kickstrapテーマを次のように別の行にロードできます。
<link rel="stylesheet/less" type="text/css" href="kickstrap.less" />
<link rel="stylesheet/less" type="text/css" href="mytheme.less" />
<script src="less.js"></script>
2つのテーマファイル
もちろん、テーマに2つのファイルが含まれている場合がvariable.less
あります。これらのファイルは、bootswatch.less
別々に保持すると機能しない場合があります。
<link rel="stylesheet/less" type="text/css" href="kickstrap.less" />
<link rel="stylesheet/less" type="text/css" href="variables.less" />
<link rel="stylesheet/less" type="text/css" href="bootswatch.less" />
<script src="less.js"></script>
したがって、代わりに@import
、variables.less
ファイルをに入れることができますbootswatch.less
。
@import "variables.less";
次に、上記の元の例を使用します。
<link rel="stylesheet/less" type="text/css" href="kickstrap.less" />
<link rel="stylesheet/less" type="text/css" href="bootswatch.less" />
<script src="less.js"></script>
ちなみに、LESSをクライアント側で使用していなくても、心配はいりません。代わりに、それぞれにコンパイルされたCSSファイルを使用してください。
<link rel="stylesheet/less" type="text/css" href="css/kickstrap.css" />
<link rel="stylesheet/less" type="text/css" href="css/bootswatch.css" />
DOMへの書き込み
DOMでこれを変更する限り、cssIfy()
すでににある関数を利用してみkickstrap.js
ます。これは文字列(.cssファイル名)を取り、それをスタイルシートとしてDOMに書き込みます。.lessファイルとして書き込む必要がある場合は、おそらくこの関数を簡単に操作できます。多分このようなもの:
function lessIfy(filePath) {
var linkElement = document.createElement("link");
linkElement.setAttribute("rel", "stylesheet/less");
linkElement.setAttribute("type", "text/css");
linkElement.setAttribute("href", filePath);
document.getElementsByTagName('body')[0].appendChild(linkElement);
}
この方法で行う場合は、後でless.js
ロードすることを確認する必要があるため、その前に追加するか、(さらに悪いことに)後でless.jsを再度ロードしてみてください。