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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

SCSS

SCSSは、SassのCSSメタ言語です。Webページのスタイルを指定するCSSを効率的に記述することができます。ネストと呼ばれる入れ子構造で記述するため、CSSの全体の記述量を減らせる点が特徴です。さらに変数も利用できるため、変更や修正の際に少ない作業量で対応することもできます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

4回答

605閲覧

BEM記法で書いた同階層の要素二つにhoverで適応させたい

kurokuma

総合スコア3

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

SCSS

SCSSは、SassのCSSメタ言語です。Webページのスタイルを指定するCSSを効率的に記述することができます。ネストと呼ばれる入れ子構造で記述するため、CSSの全体の記述量を減らせる点が特徴です。さらに変数も利用できるため、変更や修正の際に少ない作業量で対応することもできます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

1クリップ

投稿2022/06/06 03:50

編集2022/06/07 05:10

問題に対する質問が違ったのでもう一度質問させていただきます。

BEM記法で書いていてcssはSCSS環境で書いています。
その際、hoverを使うときに、.button__linkと.button__text, .button__link::before, .button__link::afterを一つのネストで記述する場合、どう記述すればいいでしょうか?

-追記-
自分の質問が具体的じゃない状態で質問してしまい、質問の方向が変わってしまってすみません。
回答してもらった皆さん、本当にありがとうございます。

[HTML]

HTML

1<div class="test"> 2 <div class="button"> 3 <a class="button__link" href="#"> 4 <p class="button__text">View More</p> 5 </a> 6 </div> 7</div>

[SCSS]

SCSS

1.test { 2 .button { 3 &__link {} 4 &__text { 5 color: #333; 6 } 7 &:hover { 8 &__link { 9 position: relative; 10 background-color: #333; 11 &::before {// 矢印のアイコン} 12 &::after {// 矢印のアイコン} 13 } 14 &__text { 15 color: #FFF; 16 } 17 } 18 } 19}

よろしくお願いします。

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

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

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

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

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

kurokuma

2022/06/06 06:11

すみません、どうしてもbutton__linkとbutton__textを個別に指定したい理由が、before, afterの擬似要素をつかっていて、:hoverを使うと&__linkとなる場合, 擬似要素まで適応させれないです。具体的にするために擬似要素のコードを追加します。
guest

回答4

0

ベストアンサー

普通に書いてはダメなんですか?

scss

1.test { 2 .button { 3 &__text { 4 color: #333; 5 } 6 &__link:hover { 7 position: relative; 8 background-color: #333; 9 &::before { 10 content: "<"; 11 } 12 &::after { 13 content: ">"; 14 } 15 } 16 &__text:hover { 17 color: #fff; 18 } 19 } 20}

コメントを受けて追記

こういうことでしょうか……?

scss

1.test { 2 .button { 3 &__link { 4 } 5 &__text { 6 color: #333; 7 } 8 } 9} 10.button { 11 &__link:hover { 12 position: relative; 13 background-color: #333; 14 &::before { 15 content: "<"; 16 } 17 &::after { 18 content: ">"; 19 } 20 } 21 &__link:hover &__text { 22 color: #fff; 23 } 24}

質問の変更に合わせて追記

.testをネストしないのであれば、もう少しすっきりするんですが……
BEM を使っているのに詳細度を002にしてしまうのはちょっと疑問があります。

scss

1 2.button { 3 $button: &; 4 @at-root .test { 5 .button { 6 &__link { 7 } 8 &__text { 9 color: #333; 10 } 11 &__link:hover { 12 position: relative; 13 background-color: #333; 14 &::before { 15 content: "<"; 16 } 17 &::after { 18 content: ">"; 19 } 20 #{$button}__text { 21 color: #fff; 22 } 23 } 24 } 25 } 26}

投稿2022/06/07 02:06

編集2022/06/07 10:03
Lhankor_Mhy

総合スコア36074

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

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

kurokuma

2022/06/07 02:30

ご回答ありがとうございます。 そちらでもいいのですが、.button__linkをhoverしたときにbuttonや擬似要素(ここでいうと矢印の色変更など), &__textなどが一気に変われるようにひとつのネストでシンプルにコードをかくことはできないでしょうか?
Lhankor_Mhy

2022/06/07 02:58 編集

.button__text:hover を書きたい、という質問だと読んだのですが、そうではないということですか?
kurokuma

2022/06/07 05:07

すみません、そうです。 「.button__link, .button__text, .button__link::before, .button__link::afterにひとつのネストで 書くことは可能でしょうか?」 という質問です。質問内容を修正します。
Lhankor_Mhy

2022/06/07 05:31

「全てを &__link:hover 直下に置いて、ネストは1段階しか認めない」ということなのですね? 把握しました。
kurokuma

2022/06/07 09:17

BEM記法は実際、ブロックの中にブロックを書かない方がいいのでしょうか?
Lhankor_Mhy

2022/06/07 10:05 編集

抜けがあったので訂正しました。 --- 個人の意見ですが、詳細度を上げるようなネストは避けるべきだと思います。 BEM は、詳細度を低く保ちCSS崩壊を防ぐ、というのがそもそもの目的にあったはずです。 ですので、SCSS で BEM を書いているのに無造作に詳細度を上げている人を見ると「この人はなんのためにわざわざ面倒なBEMを採用したんだろう?」と、個人的には疑問に思うのです。
kurokuma

2022/06/08 05:36 編集

ありがとうございます、正直BEMの根本的な理由を忘れていました。 もう一度BEMを勉強し直します。 今回、私の求めている回答に一番近かったのでベストアンサーに選ばさせていただきました。 ありがとうございました。
guest

0

こういうことでしょうか?

scss

1&:hover &{ 2 &__link, &__text{ 3 &::before{..} 4 &::after{..} 5 } 6}

投稿2022/06/08 05:00

KazuhiroHatano

総合スコア7804

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

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

0

button__textに色指定は必要ですか?

scss

1.test { 2 .button { 3 &__link { 4 color: #333 5 &:hover { 6 color: #FFF; 7 background-color: #333; 8 } 9 } 10 } 11}

投稿2022/06/06 04:25

recal

総合スコア1126

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

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

kurokuma

2022/06/06 06:06

ご回答ありがとうございます。 HTML側のaの中のpタグを消して文字だけにしたら色が変わったのですが、そのままだとできなかったです。
recal

2022/06/06 10:32

>>そのままだとできなかったです。 ん?ごめんなさい、ちょっと何を言っているのか理解できませんでした。 そのままとは?
kurokuma

2022/06/06 13:18 編集

こちらこそ言葉足らずでした、すみません。 &:hoverの中にcolor: #FFF; を入れても動かなかったという意味です。 質問内容がややこしかったので、追記しました。
guest

0

.button__textは.button__linkに含まれるのですから
.button__text:hoverすると常tに.button__link:hoverすることになります
したがって.button__link:hoverの設定だけすればよいでしょう

投稿2022/06/06 04:22

yambejp

総合スコア114771

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

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

kurokuma

2022/06/06 06:09

ご回答ありがとうございます。どうしてもbutton__textにも:hoverを書いて適応させたいのですが、なにか方法はないでしょうか?
yambejp

2022/06/06 06:11

書いても書かなくても同じなら書かなくてよいのでは?
kurokuma

2022/06/06 06:21

追記しました、似ている内容になるのですが、:hoverの後に&__linkにするとcss側では[.test .button__link:hover__link]とhoverが効かないので、[.test .button__link:hover .button__link]や[.test .button__link:hover .button__link::before]となるようにしたいです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問