2016-08-07 8 views
1

私はnetと新しいバージョンのブートストラップで多くのアドバイスを得たので、LESSからSASS/SCSSに移行しました。
しかし、すべてのクラススタイルをmixinとして扱うことができるLESSという重要な機能が1つ欠けています。LASSと@importのようなSass @extendの動作

.social-icons__list { 
    .list-inline; 
} 

問題は、私はそれが@mixinで注釈付けする必要があり、単純なクラスのため@includeを使用することができないということです。 placeholderの場合は、%というクラスに注釈を付ける必要もあります。

私の場合と同様に、私は既存のクラスを拡張し、プレースホルダを使うような動作をする必要があります。

SASSの場合

それは

.list-inline, .social-icons__list { 
    padding-left: 0; 
    list-style: none; 
    margin-left: -5px; } 

CSSを次生成しますが、私はそれを受け入れるだろう唯一

.social-icons__list { 
    padding-left: 0; 
    list-style: none; 
    margin-left: -5px; } 

スタイルをコピーする必要がありますが、私はまた、bootstrap sass源と@import "../external-dependency/bootstrap-sass-3.3.7/assets/stylesheets/bootstrap";

をダウンロードする必要がありました

このコード行では、コンパイラはすべてのスタイルをからコピーします私のコンパイルされたファイルに。

おそらく、これらの問題の解決策があります。

私は何か助けに感謝します。

答えて

1

SassにはLessのようなclass-as-mixin機能はありません。実際のオプションは@extendですが、この動作の違いは何もないので、クラス名を@ extend-ingというクラスに持ち上げるだけです。

ブートストラップの問題はBSクラスをコンパイル済みファイルで必要とするミックスインが少なくても使用したい場合とは別の問題です。そのための最善の戦略は、公式bootstrap sassを使用して、使用している部品のみをインポートすることです。ほとんどのスタイル/コンポーネントには@mixinも定義されていますので、mixinsファイルをインポートして、実際のクラスを必要としない場合に使用することができます。

+0

答えがあれば、私の 'scss'ファイルで使われている部分だけをインクルードするために、ブートストラップのインポートを使うことができますか? – CROSP

+0

使用しているクラスだけをプルする方法はありません。使用しているブートストラップのセクションだけをインポートすることができます。 ../import/../ external-dependency/bootstrap-sass-3.3.7/assets/stylesheets/bootstrap/grid ";"または単にmixinsを使って独自のクラス '@import"を構築する../external-dependency /bootstrap-sass-3.3.7/assets/stylesheets/bootstrap/mixins/grid ";"またはuncssのようなものを使ってビルド時に未使用のクラスを取り除くことができますhttps://github.com/giakki/uncss – JustH

関連する問題