私はCSSメディアクエリを使用してresponsivelyを振る舞うしたいウェブサイトを構築しています。 私はKnockout-jsを使ってクライアントのUIをテンプレート化しています。使用するのは素早く素敵です。knockout-jsテンプレートをCSSのメディアクエリに対応させるにはどうすればよいですか?
私が発見したのは、knockout-jsテンプレートで定義したUIをレンダリングする必要があるということです。これによって、各「リスト項目」のテキストをレンダリングするDIVとSPANが生成されます。最も重要なもののためのスペースを作るために、より詳細な情報を削除する - ユーザーがダウンして、画面を縮小すると
は、レイアウトは、ユーザインタフェースの簡素化」にメディアクエリーによって応答します。
私は「冗長のレベル」にラベルを「グループ化」してから、画面の不動産が減少するにつれてメディアクエリを使用して「より高いレベルの冗長性」をオフにすることができます。効果的に特定のHTML要素を非表示にします。
は、しかし - 私のテンプレートは非常に迅速に、非常に複雑になります - 単純にdiv要素をオフにすることは十分ではない可能性があるため。私は、ユーザーがブラウザのサイズを変更するように、テンプレートが実際にを入れ替えた、 CSSメディアクエリ「ルール」を含まれるテンプレートを定義することができ、より理にかなっていることを、私には思えます。これにより、はるかにクリーンなHTMLテンプレートが得られ、複雑なCSSも少なくなります。
だから、私の質問は - この問題と考え、誰が、おそらくいくつかのベストプラクティスを通してそれを解決した - おそらく私は私のために、このの世話をするだろうKnockoutJsで一部の機能が欠けていますか?
ありがとうございます!
職場での戦略パターンは、ここで非常に良い解決策のように見えます。 –
私はこれについて嫌いなことは、CSSとJSの同じレイアウトのシフトをエンコードすることです。可能な場合は、CSSマーカのアプローチは、CSSのさまざまなタイプのレイアウトを管理し、JS内のそれらの間の変更を検出するだけでよいので、私はより良いと考えています。 –
「単にdivをオフにするだけでは十分ではないかもしれないので、OPの発言について」これは実際にはレイアウトごとに異なるアプリケーションが必要であることを暗示していますが、アプリケーションを本質的に変更して処理する必要があるため、このカップリングを作成することに欠点はありません。 –