受け入れられた回答は、要求されたアプリを構築する方法を説明していますか?現在、これはbrowersifyを使用して簡単に行うことができます。このソリューションでは、group-css-media-queriesも使用されます。
- browserifyをインストールします:npm install -g browserify
- npm install group-css-media-queries
- npm install jquery(これが質問で尋ねられる主な原因)
main.js
これで、 :を作成できます。
var gcmq = require('group-css-media-queries');
var $ = require('jquery');
$( document ).ready(function() {
$('#css').submit(function(e){
$('#grouped textarea').val(gcmq($('#css textarea').val()));
e.preventDefault();
});
});
次に、コンソールで実行します。
>> browserify main.js -o app.js
結果app.js
は、HTMLファイルに含めることができます。
<script type="text/javascript" src="app.js"></script>
アプリのHTMLページは、次のようになります。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Merge Media queries</title>
<script type="text/javascript" src="app2.js"></script>
</head>
<body>
<h1>Unmerged CSS code:</h1>
<form id="css">
<textarea id="csscode" cols="50" rows="10">header {
color: red;
}
@media only screen and (min-width: 768px) {
header {
color: green;
}
}
@media only screen and (min-width: 1024px) {
header {
color: blue;
}
}
section {
color: green;
}
@media only screen and (min-width: 768px) {
section {
color: blue;
}
}
@media only screen and (min-width: 1024px) {
section {
color: red;
}
}</textarea>
<input type="submit" value="merge @media">
</form><br>
<h1>Merged @media:</h1>
<form id="grouped">
<textarea id="groupedcode" cols="50" rows="10"></textarea>
</form>
</body>
</html>
デモ:http ://codepen.io/bassjobsen/pen/NqrJeM (JSコードが大きいためにロードが遅くなる可能性があります)、http://codepen.io/bassjobsen/pen/rVLgod(jQueryなしでも同じ(以下を参照))および縮小されたJS、より速くロードする必要があります)
フォームの処理にのみjQueryを使用すると、多くのオーバーヘッドが発生することに注意してください。main.jsでプレーンJavaScriptを使用する可能性:
var gcmq = require('group-css-media-queries');
window.onload = function () {
document.getElementById("css").onsubmit = function onSubmit(form) {
var unmerged = document.getElementById('csscode').value;
document.getElementById('groupedcode').value = gcmq(unmerged);
return false;
}
}
独自のアプリを作成する代わりに、@ mediaのマージに後処理プラグインを使用することを検討する必要があります。https ://stackoverflow.com/a/30325426/1596547を参照してください。