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

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

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

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

1289閲覧

SCSS記法でタグ名とクラス名をつなげて記述する方法

gesorein

総合スコア101

Sass

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2018/09/13 10:23

編集2018/09/13 11:48

SCSS記法で以下のようなCSSを実現したい場合はどのように記述すればいいですか?

css

1.btn { 2 color: red; 3} 4 5div.btn { 6 color: blue; 7}

できれば btn という記述が1回で済むような方法が知りたいです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答3

0

ベストアンサー

これでどうじゃ?

scss

1.btn { 2 color: red; 3 4 @at-root div#{&} { 5 color: blue; 6 } 7}

投稿2018/09/13 11:25

bwz61366

総合スコア2009

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

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

bwz61366

2018/09/13 11:25

うわっ、かぶっちまった。
gesorein

2018/09/13 11:30

回答ありがとうございます!SCSS記法ではこの方法しかないのかもしれませんね...。 せっかく答えていただいたので、ベストアンサーにさせていただきました!
bwz61366

2018/09/13 11:32

たしか、issueでもコレと同じ話題上がってたんだけど、なんかようわからん状態で終わっていた記憶がある 残念ながら、当分はこれ使っていくしかないなー むぐむぐ
guest

0

少し強引な方法かもしれませんが、以下の書き方で実現することができました。

SCSS

1.btn { 2 color: red; 3 4 @at-root div#{&} { 5 color: blue; 6 } 7}

投稿2018/09/13 11:24

編集2018/09/13 11:49
gesorein

総合スコア101

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

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

0

css

1.btn { 2 color: red; 3}

上記だけ記載すればdiv.btnの場合も含まれます。

.btnは赤で、div.btnは青にしたいというような時は以下のような書き方でできます。
[追記] すみません、lessの記法とごっちゃになってて誤答しました。
一応lessでは以下の書き方ができます。

less

1.btn { 2 color: red; 3 4 div& { 5 color: blue; 6 } 7}

投稿2018/09/13 10:34

編集2018/09/13 10:50
dice142

総合スコア5158

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

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

gesorein

2018/09/13 10:59 編集

回答ありがとうございます!すみません、回答の途中で少し質問を修正してしまいました。 SCSSで div& のように記述すると以下のようなエラーが表示されてしまいます。 Invalid CSS after "div": expected "{", was "&" "&" may only be used at the beginning of a compound selector. ちなみにSassのバージョンは3.5.6です。 なるほど、LESSだとたしかに問題ないみたいですね...!
dice142

2018/09/13 11:11

scssでは「div&」のように&を後ろに続ける書き方はできないようです。。。 <div class="btn hoge"></div> <input type="button" class="btn"> のように別のクラス名をつけると以下のような書き方ができますが、そういうことではないですよね? .btn { color: red; /* divにhogeクラスを付けた時はこう書ける */ &.hoge { color: green; } }
gesorein

2018/09/13 11:21

そうですね、別のクラス名は付けないようにしたいですね...!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問