2012-01-18 4 views
1

これは私の宝石がやりたいことです... Railsのgemファイルに含まれていれば、開発者はどのスタイルシートがメインで、どのスタイルシートが 'セカンダリ'であるかを指定することができます。最初のスタイルシートのすべてのスタイルが他のすべてのスタイルよりも優先されますが、メインスタイルにスタイルが存在しない場合、スタイルスタイルシートはセカンダリスタイルシートを使用します。CSSクラスの優先順位を管理するためにルビー/レールの宝石を作成したければ、どこから始めるのですか?

例えば、main.cssbodyがあり、secondary.cssにある場合、常にmain.cssのスタイルが使用されます。しかし、secondary.cssalert-messageがあり、メインではない場合は、コンフリクトの心配なしにalert-messageを使用できます。

基本的なアイデアは、既存のフレームワークや、サイト全体やアプリケーションが乱れることを心配することなく、main.cssと衝突するクラスを持つ縮小スタイルシートを活用できるようにすることです。

Rails/Rubyの宝石作成プロセス全体の概要を知ることができたら、これはすばらしいことです。次に、この特定の問題を解決する方法について(高レベルから上手くいく)いくつかの議論があります。

答えて

0

多くの作業が必要になると思います。 CSSパーサーを拡張する(または独自の)CSSパーサを作成する必要があります。または、どのクラスが「メイン」であるかを指定する別の方法を思いついてください。

私が考える解決策は、です。はあまり複雑ではありません。すべての「セカンダリー」の後に「メイン」スタイルシートを含めてください。競合があれば、クラスを上書きします。

+0

私はこれを何度も試みましたが、多くの異なる組み合わせで、常に競合がありました。シーンの裏側に何かがあるかどうかはわかりませんが、2つの独立した<%stylesheet_link_tag%>コールが2つあります。私の 'main.css')と他のものは変わってしまいます。なぜなら、彼らのスタイルは衝突しているからです。私は自分のメインでTwitterからBootstrapを使用しようとしていますが、私はすべてのスタイルを使いたくありません。 – marcamillion

+0

@marcamillion:それで、幸運にも、私があなたの場合は私のクラスの名前を変更します:-) –

+0

スタイルシートが2000行でないなら、 – marcamillion

関連する問題