Twitter Boostrap 3 と LESS を使用する中規模のプロジェクトで使用する OOCSS や SMACSS などの CSS のベスト プラクティスと方法論を研究しています。私はこれらの方法を理解し始めていますが、レスポンシブ デザインと CSS モジュールの関係を処理する方法を見つけるのに苦労しています。
たとえば、プロジェクトで使用されるすべての種類のボタン (色、形状、サイズ) を含むボタン モジュールがあるとします。デバイスに応じてボタンを変更するにはどうすればよいですか。同じボタンをモバイルでは大きく、デスクトップでは通常のボタンにする必要があります。OOCSS に従って、btn--default と btn--large のような 2 つのスキン クラスが必要です。しかし、HTML は各デバイスで同じであるため、HTML でこのクラスを切り替えることはできません。また、デバイスのサイズに応じてボタンのサイズを変更するモジュールの CSS でメディア クエリを使用することは、モジュールをこの特定のニーズに結合することになるため、お勧めできません (通常のボタンが必要な場合はどうすればよいでしょうか)。後で携帯?)
別の例として、さまざまなレイアウト (垂直/水平) が可能な製品セクション モジュールがあります。デスクトップでは垂直レイアウト、モバイルでは水平レイアウトを使用したい場合はどうすればよいでしょうか。私はまったく同じ問題に直面しています。2 つの異なるサブモジュール (product--horiz、product-vert) を簡単に作成できますが、それらを変更することはできません。
javascript を使用してクラスを切り替えることもできますが、それは適切ではなく、JS を無効にするとデザインが壊れてしまいます。あるデバイスから別のデバイスに要素が大きく変化している場合、設計が正しくない可能性があると言うことができますが、これを抑制することは実際の制限になります.
では、この問題についてどうお考えですか。それに直面するために使用される一般的な慣行はありますか?