1 つのアプリケーションで複数の jQuery UI テーマを整理して実装するのに役立つテクニック/ヒント/トリックを誰かが持っていますか?
スタイルのオーバーライドを強制する最も確実な方法と思われるため、使用!important
することにしましたが、この方法はあまり望ましくありません。
1 つのアプリケーションで複数の jQuery UI テーマを整理して実装するのに役立つテクニック/ヒント/トリックを誰かが持っていますか?
スタイルのオーバーライドを強制する最も確実な方法と思われるため、使用!important
することにしましたが、この方法はあまり望ましくありません。
はい、しかしそれはあなたが何を意味するかによります。
要素 A をテーマ X でスタイル設定し、要素 B をテーマ Y でスタイル設定するとします。jQuery テーマ ローラーにはこの機能が組み込まれています。テーマをダウンロードする場合 (ここ)、右側の[高度なテーマ設定]をクリックします。ここでは、「CSS Scope」を設定できます。これにより、特定のテーマから jQuery UI クラス (つまりui-corners-all
など) を適用できます。このオプションについての説明は次のとおりです。
このフィールドを使用すると、CSS スコープを指定して、テーマをページの特定の部分に限定できます。これは、ページで複数のテーマを使用する場合に役立ちます。CSS スコープを指定しない場合、テーマはページ上のすべての UI 要素に適用されます。
ほとんどの場合、CSS スコープを指定する必要はありません。注意: CSS スコープを指定すると、サンプル ページはダウンロードに含まれません。
テーマ フォルダー名を変更することもできます。
このフィールドでは、ダウンロードのテーマ フォルダーの名前を指定できます。これは、1 つのページで複数のテーマを使用する予定がある場合に役立ちます。デフォルトは「テーマ」です。
ただし、いくつかのテーマから少しずつ借りてまったく新しいテーマを作成する場合は、CSS と画像ファイルを自分で編集する (推奨されません) か、テーマ ローラー ツールを使用して独自のテーマを作成するという 2 つのオプションがあります。
使い方:
CSS スコープは単なる CSS セレクターです。テーマ X は、 class を持つすべての要素にのみ適用する必要があるとしましょうaClass
。この場合、CSS Scope は になります.aClass
。したがって、テーマ X から要素に丸みを帯びた角を追加する場合 (CSS Scope が に設定されていると仮定.aClass
)、HTML は次のようになります。
<div class='ui-rounded-corners aClass'>
Content
</div>
この手法を、本文にオーバーレイして追加されるUIウィジェット(ダイアログ、日付ピッカー、オートコンプリートなど)に適用すると、いくつかの問題が発生します。
オートコンプリートの場合、次のようにして、スコープクラスを持つ親要素を取得できます。オートコンプリート自体のULにscoppedクラスを追加するだけでは不十分です。
jQuery('.autocomplete').autocomplete({
source: function(request, response){
{....}
},
create: function(event, ui) {
jQuery('.ui-autocomplete').wrap('<span class="xxSCOPPEDCLASSxx"></span>');
}
});
searched for hours, and finally found the way to do it from the FilamentGroup, complete with tutorial and working examples.