🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSS

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

Q&A

解決済

3回答

693閲覧

特定のクラス名に続く属性値でスタイルを変えたい。

gogoweb_ikeda

総合スコア1426

CSS

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

0グッド

0クリップ

投稿2021/01/27 02:55

btnというクラスを用意して、その後ろに--blueがある場合はボタンの色を青、--redがある場合はボタンの色を赤にしたいと考えました。

HTML

1<span class="btn--blue">1.青になる</span> 2<span class="hoge btn--red">2.赤になる</span> 3<span class="hoge--blue">3.青にならない</span> 4<span class="btn hoge--red">4.赤にならないでほしい</span>

SCSS

1[class^="btn"], 2[class*=" btn"]{ 3 color:#fff; 4 &[class*="--blue"] { 5 background: #00f; 6 } 7 &[class*="--red"] { 8 background: #f00; 9 } 10}

ただこの書き方だとbtnが含まれていて他のクラスに--redがある場合でも色が赤になってしまいます。
(上記HTMLの4番)
これをbtn--redの場合は赤、それ以外に--redが付いている場合は赤にしないという設定にしたいのですが
何かいい方法はありますでしょうか?
最終的に
btn--red--small
のように複数の属性でスタイルを追加していきたいと考えていて、btn--redにスタイル指定ではなく
btnで始まるクラスに--redが含まれるという形でスタイル適用が希望です。

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

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

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

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

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

guest

回答3

0

自己解決

仕様が複雑になるだけでメリットが少なそうなので取り下げます。すみません。

投稿2021/01/27 03:51

gogoweb_ikeda

総合スコア1426

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

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

0

css

1[class^="btn--"], 2[class*=" btn--"]{ 3 color:#fff; 4 &[class*="--blue"] { 5 background: #00f; 6 } 7 &[class*="--red"] { 8 background: #f00; 9 } 10}

ということですかね。

なんでこんな複雑な仕様にする必要があるのか理解できませんが。

投稿2021/01/27 03:31

hatena19

総合スコア34073

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

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

gogoweb_ikeda

2021/01/27 03:50

これですと、btn-small hoge-red でも赤になってしまいます。 hatena19さんの言う通り複雑になるだけでメリットが少なそうなので取り下げます。すみません。
guest

0

scss

1.btn { 2 color:#fff; 3 &--blue { 4 background: #00f; 5 } 6 &--red { 7 background: #f00; 8 } 9}

投稿2021/01/27 03:09

編集2021/01/27 03:10
miyabi_takatsuk

総合スコア9555

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

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

gogoweb_ikeda

2021/01/27 03:48

本文にも書いてありますが希望としてはbtn--red--smallのようにbtnに対して複数の属性をつなげるような形にしたかったのです。 複雑になるだけでメリットが少なそうなので取り下げます。すみません。
miyabi_takatsuk

2021/01/27 04:07

そうですね、色を適用させる用のクラスを用意した方がいいかと思いますよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問