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

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

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

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

Bootstrap

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

Q&A

解決済

2回答

2706閲覧

bootstrap を使う SCSS の書き方

退会済みユーザー

退会済みユーザー

総合スコア0

Sass

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

Bootstrap

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

0グッド

0クリップ

投稿2018/08/23 06:47

これまで CSS を直書きしかしたことがなくて
bootstrap 4 も SCSS もはじめて使うのですが

たとえば
form 全部に .form-control .form-control-sm って付けたいとき

form {
@extend .form-control .form-control-sm;
}

みたいにかけばいいのでしょうか

これだけかくとクラスがみつからないといわれて
@import 'bootstrap' とかくと
使わない bootstrap の中身もすべて展開されてしまいます

部品ごとに CSS をわけたいときに
どのCSSにも重複する bootstrap の中身が展開されるのは無駄な気がします

どのように書くのがスマートなんでしょうか

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

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

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

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

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

guest

回答2

0

単にしたいことを書けばこうでしょうね。

SASS

1form { 2 @extend .form-control; 3 @extend .form-control-sm; 4}

ただ、不用意に@extendを使うと生成されるCSSが膨れ上がるので気を付けてください。
わたしは要素のみのセレクタでは怖いので使いません。

投稿2018/08/23 07:41

x_x

総合スコア13749

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

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

退会済みユーザー

退会済みユーザー

2018/08/23 10:27

回答ありがとうございます extend で膨れ上がるというより extend するための import でふくれあがるのが困るんですよね CSSを部品ごとにわけるとどのCSSでもbootstrap全体がimport されてしまうので extend するクラスのみがよみこまれるのであれば extend で増えるのは許容できるんですが…
guest

0

ベストアンサー

残念ながら、Bootstrapの設計思想自体が「form 全部に .form-control .form-control-sm って付けたいとき」には都度<form class="form-control form-control-sm">と書く、というものになっています。

Aside from our Reboot, a cross-browser normalization stylesheet, all our styles aim to use classes as selectors. This means steering clear of type selectors (e.g., input[type="text"]) and extraneous parent classes (e.g., .parent .child) that make styles too specific to easily override. (Bootstrap 4.1リファレンスより)

和訳すれば、「クラス以外のセレクタに対してnormalize以上のスタイルを適用してしまうと、あとあとオーバーライドするのが面倒になる(ので、適用するCSSはすべてクラスで指定する)」ということです。

クラスなしで特定のスタイルを利かせる、という設計のベースにするには、Bootstrapは方向性が違いすぎます。

投稿2018/08/23 07:13

maisumakun

総合スコア145183

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

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

退会済みユーザー

退会済みユーザー

2018/08/23 07:26

そうなのですね… <li> とかにも毎回 class="〜item" みたいなのつけないといけないし なるべくHTMLは簡潔に保ってCSSとセレクタで重複を省くっていうのが CSS3 の方向性なのかなと思ってたのですが… とりあえずクラスを地道につけていくことにします ありがとうございました
maisumakun

2018/08/23 07:31

Bootstrapは汎用性のあるCSSフレームワークなので、後から上書きして使おうとしてもじゃまにならないことが前提となっています。 後から上書きしない、このサイト用のCSSを作る、という場合とは何かと違ってくるのです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問