質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Q&A

1回答

315閲覧

@extend を含むSCSSファイルを分割する方法

退会済みユーザー

退会済みユーザー

総合スコア0

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

0グッド

0クリップ

投稿2018/09/06 06:32

やりたいこと

bootstrap を import して一部 scss でレイアウトの調整をしているんですが
ページによって使う部品使わない部品の CSS が大きくなってきたので
サブ SCSS に分割してページによって読み込む SCSS をかえようと思ってます

たとえば page1 をよみこんだときは部品 1 2 を使うので次の4つ
default.scss

  • page1.scss

-- part1.scss
-- part2.scss

page2 をよみこんだときは部品 1 3 を使うので次の4つ
default.scss
-page2.scss
-- part1.scss
-- part3.scss

みたいな感じです

問題点

@extend .p-1 とか @extend .btn とか
bootstrap のクラスを指定してレイアウトしてるためすべてのファイルに @bootstrap が必要になる

bootstrap の中身全部が展開されるとサイズが結構大きいので
分割して読み込むファイル全てに展開されると非常に無駄な気がします

bootstrap を使う以上 bootstrap に用意されているクラスをあてないと
バージョンアップ等に対応できないし

使う部品ごとに SCSS を分割してかつ無駄な重複 import をせずにコンパクトに保つにはどうすればいいのでしょうか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

bootstrap の中身全部が展開されるとサイズが結構大きいので

分割して読み込むファイル全てに展開されると非常に無駄な気がします

bootstrap/variablesbootstrap/mixinsだけ@importすれば、これらにはミックスインや変数など、SCSS上のデータ定義だけが入っていて、CSSには何も出力されないので、各ファイルで@importしても肥大化の問題は生じません。

投稿2018/09/06 06:41

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/09/06 06:51

やってみましたが @import 'bootstrap' のかわりに @import 'bootstrap/functions'; // bootstrap_variables のために必要 @import 'bootstrap/variables'; @import 'bootstrap/mixins'; にかえてみたのですが @extend .col-md-3 のところで見つからないエラーがでてしまいます 軽く調べたら @include make-md-column(3); みたいな書き方ができるようになるみたいですが 既存の @extend を使った SCSS は全部書き直しになるのでしょうか あと .btn { @extend .btn-secondary } .form-control { @extend .form-control-sm } みたいな感じでデザインを指定しちゃってるんですがこういうのもかけますか?
maisumakun

2018/09/06 06:52

@extendを使っているとなると、もとのクラスに当てるCSSが必要になってしまうので、難易度は上がりますね……
退会済みユーザー

退会済みユーザー

2018/09/06 06:55

そうですか… 最初のアプローチがまずかったのですね 関連質問にある https://teratail.com/questions/52379 をよんで真似してみたのですが…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問