私の質問は、タイトルよりも実際に広いです。これはちょうど私が私のアイデアで悩まされている場所ですが、私はあらゆる種類のソリューションに開放されています。私の全体的な目標について説明しましょう。別のsassファイルから@extendする方法、またはOOSASSを達成する方法は?
私はCSSプリプロセッサができることが好きです。私はOOCSSとSMACSSのアイデアが気に入っています。私はこのすべてに新しいです。私は何とかすべての世界の最高のものを組み込むために私の設計方法をアップグレードしようとしています。私はこのように動作します理論的な方法があります:
- 使用はからモジュールを@extendページのスタイルシートごとに持っているいくつかの一般的なスタイルシートに
- をモジュールまたはパターンを定義します
:だから、この特定のページへ/* modules.scss */ .ruddy {color: red} .fullwidth {width: 100%; display: block;}
を関連するセマンティックセレクタの上に共通のスタイルシート
プラスこの:
/* homepage.scss */
@import modules.sass
#intro {@extend ruddy; @extend fullwidth}
aside {@extend ruddy;}
.thing {@extend fullwidth;}
はこのようになります。
/* homepage.css */
#intro, aside {color: red}
#intro, .thing {width: 100%; display: block;}
私は必ずしも誰がこれを行うに見ていないが、それは私には良いアイデアのように思えました。私の壮大な計画で実行している問題は、@extendがインポートされたファイルから機能しないように見えることです。 SOの他の誰かが、それは不可能だと言った。これは本当ですか?私はmixinsを稼働させましたが、それらの問題は、出力CSSのすべての属性を複製することです。これは理想的ではないようです。
私は実際にはLESS(構文)よりも部分的ですが、現時点では拡張していません。私はミックスインの非効率性を心配してはいけませんか、私が求めていることを達成するための方法がありますか?
注: 私はPreprosというツールで自分の草を自動コンパイルしています。上記のようなコードをコンパイルしようとすると、次のようなエラーが出ます。
... \ sass \ home.scssの11行目で警告: "#intro"は "ruddy"を@extendできませんでした。 セレクタ「ruddy」が見つかりませんでした。
私はmodule.scssからhomepage.scssにコードをコピーするだけで、問題は解決します。
ドットを追加しても何も修正されません。同じエラー。そして、すべてが1つのファイルにある限り、私の既存の構文が機能することを忘れないでください。 – Moss
ああ変だ。数日後に動作します。 – Moss