2

プロジェクトで初めてadapt.jsを使用しています。範囲は0〜720で、mobile.cssファイルと2番目のcssファイルをロードします。これをstyle.cssと呼びます。これは可能ですか?回避策はありますか?これを試しましたが、期待どおりに機能しませんでした。

var ADAPT_CONFIG = {
    path: 'css/',

    dynamic: true,

    range: [
        '0px    to 720px  = style.css',
        '0px    to 720px  = mobile.css',
        '720px            = 720.css'
    ]
};
4

2 に答える 2

1

使用できます

@import url('/css/mobile.css');

style.cssの先頭に。

次に、その範囲でstyle.cssのみを使用するように (ADAPT_CONFIG を介して) adapt.js を構成します。

またはその逆に、mobile.css の最後に style.css をインポートして、mobile.css のみを使用できます。

于 2013-02-26T11:12:52.123 に答える
0

これは不可能だと思いますが、大胆に感じている場合は、adapt.jsのソースを変更してこれを行うことができます。これがadapt.jsの重要な部分です:

// If it's a range, split left/right sides of "to",
// and then convert each one into numerical values.
// If it's not a range, turn maximum into a number.
val_1 = is_range ? parseInt(arr_0.split('to')[0], 10) : parseInt(arr_0, 10);
val_2 = is_range ? parseInt(arr_0.split('to')[1], 10) : undefined;

// Check for maxiumum or range.
if ((!val_2 && i === last && width > val_1) || (width > val_1 && width <= val_2)) {
    // Build full URL to CSS file.
    file && (url = path + file);

    // Exit the while loop. No need to continue
    // if we've already found a matching range.
    break;
}

これは、ADAPT_CONFIGで指定した範囲条件をチェックするwhileループ内にあります。ご覧のとおり、パスが見つかると、「範囲」は追加の一致がないかチェックされなくなります。ただし、コードを変更して許可することもできます。whileループに続くコードを上記のifステートメントに移動し、ブレークを削除する必要があります(これは知識に基づいた推測であり、私はこれを試みていません)。

ただし、ファイルの提供方法によっては、アセットマネージャーを調べて、「style.css」と「mobile.css」を1つのファイルに結合することを強く検討します。アセットをプリコンパイルすると、次のような他のいくつかの楽しいトリックが可能になります。自動的にcssファイルを可能な限り小さくします。

編集-資産運用会社に興味がある場合、それを行う方法は実際には1つではありません。職場で使用している環境に大きく依存します。レールのようなものの場合、ファイルのマージはかなり調理されているため、これは非常に簡単です。スプロケットの宝石には、アセット管理のための他の機能がたくさんあります(ファイルの結合は非常に高速です)。もし私があなただったら、おそらく「cssファイルとの組み合わせ」の行に沿って簡単にグーグルを実行するでしょうが、たくさんのオプションがあります。派手なフレームワークがなければ、このためのPHPスクリプトはいたるところにあり(これは有望な例です)、Googleはこの種の中華鍋用にApachemodを 作成しています。

このルートを使用する場合は、基本が機能するようになったら、少し遊んでみることをお勧めします。ファイルを結合する場所と同じ場所でADAPT_CONFIGの範囲の値を生成するなど、気の利いたことを行うことができます。スタイルファイルを管理できる、すっきりとした単一のポイント。

于 2012-09-27T21:00:01.667 に答える