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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

CSS3

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

Vuex

Vuexは、Vue.js アプリケーションのための状態管理ライブラリです。アプリケーション内で使用するコンポーネントのための集中データストアを提供。コンポーネント同士でデータをやり取りし、処理のフローを一貫させたり、データの見通しを良くすることができます。

HTML5

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

CSS

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

Q&A

解決済

3回答

2597閲覧

Vue.js scssのあて方

kakedashidesu

総合スコア50

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

CSS3

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

Vuex

Vuexは、Vue.js アプリケーションのための状態管理ライブラリです。アプリケーション内で使用するコンポーネントのための集中データストアを提供。コンポーネント同士でデータをやり取りし、処理のフローを一貫させたり、データの見通しを良くすることができます。

HTML5

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

CSS

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

0グッド

0クリップ

投稿2020/04/14 12:36

編集2020/04/14 13:17

vue.jsを使ってフロントを構築しています。
下記のところのスタイルだけ丸く変更したいのですがclass="detail_title"やclass="detail_content"は違うところでも多用されておりスタイルを変更することはできません。
下記のスタイルだけ変更したい場合はどう書けばいいのでしょうか?
知識ある方ご教授ください。よろしくお願いいたします

<div v-if="user.interests.length > 0" class="detail_content"> <p v-for="interest user.interests">・{{ interest.name }}</p> </div> <p v-else class="detail_content"> 空欄です </p> </div>
<div class="detail"> <p class="detail_title">興味</p> <div v-if="user.interests.length > 0" class="detail_content"> <p v-for="interest user.interests">・{{ interest.name }}</p> </div> <p v-else class="detail_content"> 空欄です </p> </div> ============================ scss <style lang="scss" scoped> .detail{ padding: 8px 0px; margin: 0 24px; &_title { font-style: normal; font-weight: 600; font-size: 10px; color: red; margin-bottom: 8px; } &_content { background: #f0f2f5; border-radius: 4px; padding: 8px; font-style: normal; font-size: 15px; color: #4d4452; } }

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

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

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

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

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

guest

回答3

0

ベストアンサー

ああ、やっと問題と答えが見えてきました。一旦今までの話は忘れてもらっていいです。クラス名に複数の名前を設定できるのはご存知ですか?こんなふうに

html

1 <div class="detail interest"> 2 <p class="detail_title interest">興味</p> 3 <div v-if="user.interests.length > 0" class="detail_content interest"> 4 <p v-for="interest user.interests">・{{ interest.name }}</p> 5 </div> 6 <p v-else class="detail_content interest"> 7 空欄です 8 </p> 9 </div>

interestが付加されているのがお分りかと思います。これをCSS上で

css

1.detail.interest { 2 border-radius: 4px; 3}

とすればdetailinterest両方のクラスを持つ要素にのみ角丸が適用されます。セレクターにスペースがないのに注意してください。クラスセレクターの仕様です。
クラスセレクター - CSS: カスケーディングスタイルシート | MDN
これを使えば多分のぞんだことができるでしょう。

投稿2020/04/14 13:50

A_kirisaki

総合スコア2853

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

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

kakedashidesu

2020/04/14 14:05

返信ありがとうございます 以下のエラーになるのですがどうしてなのでしょうか? .detail.interest { border-radius: 4px; }を付け足した時に以下のエラーになるのですがどうしてなのでしょうか? ✖ 2 problems (2 errors, 0 warnings) 2 errors and 0 warnings potentially fixable with the `--fix` option.
A_kirisaki

2020/04/14 14:08

エラー全文をいただければ何かわかるかもしれません。それしか出ていませんか?
kakedashidesu

2020/04/14 14:20

空欄がありエラーになっていました!!エラーは治りましたがスタイルが変わらないです!!
A_kirisaki

2020/04/14 14:22

例に出したのはdetailなのでdetail_titleなどに適宜変えてみてください。
kakedashidesu

2020/04/14 14:23

どこを変えればいいのでしょうか?
A_kirisaki

2020/04/14 14:25

CSSの.detail.interestの部分です
kakedashidesu

2020/04/14 14:30

cssのdetail.interestをdeteil.titleに変更しました
kakedashidesu

2020/04/14 14:33

border-radius が適応されてないみたいです
kakedashidesu

2020/04/14 14:33

colorを指定してあげたところ変わったのですがどうしてなのでしょうか?
A_kirisaki

2020/04/14 14:38

,detail_title.interestですよ。落ち着きましょう。
kakedashidesu

2020/04/14 14:40

あと <p class="detail_title interest">興味</p>にはスタイルは適応させたくなく 下記だけスタイルを変更させたいです <div v-if="user.interests.length > 0" class="detail_content interest"> <p v-for="interest user.interests">・{{ interest.name }}</p> </div> <p v-else class="detail_content interest"> 空欄です </p>
kakedashidesu

2020/04/14 14:42

すいません。全くわかりません。
kakedashidesu

2020/04/14 14:42

色々ごちゃごちゃになってしましました
kakedashidesu

2020/04/14 14:44 編集

まずcssの指定なのですが .detail.interest { border-radius: 4px; } 上記の意味はdiv(detai)の中にあるinterestのスタイルを変更させるという意味であってますか?
A_kirisaki

2020/04/14 14:45

いえ、divにあるdetailとinterest両方かかっているものにのみスタイルが当たります
kakedashidesu

2020/04/14 14:49

1 <div class="detail interest"> は  ○ 2 <div class="detail_conterest interest"> は ○ 3 <div class="detail"> <div class= "interest"> ✖️ という認識であっていますか?
kakedashidesu

2020/04/14 14:52

ありがとうございます!!!納得できました!!!!!
kakedashidesu

2020/04/14 14:53

うまくいきました!!! とても勉強になりまいした!!!!! ありがとうございました!!!!
guest

0

Vue.jsであれば単一ファイルコンポーネントと言うHTML、JavaScript、CSSをまとめたファイルをWebpackでコンパイルすることが一般的です。
単一ファイルコンポーネント — Vue.js
この中でかぶらないのあれば他のファイルとクラス名が被ってもコンパイル時によしなに名前がかぶらないようにやってくれます。この例ではCSSしか使っていませんが、どうしてもscssが使いたい場合はscssを使うこともできるようですので調べてみるのも良いかもしれません。

投稿2020/04/14 12:47

A_kirisaki

総合スコア2853

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

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

kakedashidesu

2020/04/14 12:56 編集

他のファイルとクラス名はかぶっていないです。上記のファイルと同じファイルに直接scssを書いています。
kakedashidesu

2020/04/14 12:56 編集

ファイル内でclass = "detail_content"を多用しており、上記のとこだけ変更したいのです。 質問の仕方が悪くてすいません
A_kirisaki

2020/04/14 13:24

その場合はコンポーネントの分け時かもしれません。あまり大きなコンポーネントを作らず、小さく分けるよう心がけてみてください。 ``` <div class="detail"> <p class="detail_title">興味</p> <div v-if="user.interests.length > 0" class="detail_content"> <p v-for="interest user.interests">・{{ interest.name }}</p> </div> <p v-else class="detail_content"> 空欄です </p> </div> ``` このくらいの単位をコンポーネントにまとめられそうではなさそうでしょうか
kakedashidesu

2020/04/14 13:38

ん??? この興味のブロックだけ違うコンポーネントにするということですか? なぜ違うコンポーネントにする必要があるのでしょうか? スタイルはほぼ同じで興味だけ少し丸くしたいだけなのですが
guest

0

スコープ付き CSSを使えばいいのでは

vue

1<style lang="sass" scoped> 2.detail{ 3 padding: 8px 0px; 4 margin: 0 24px; 5 &_title { 6 font-style: normal; 7 font-weight: 600; 8 font-size: 10px; 9 color: red; 10 margin-bottom: 8px; 11 } 12 &_content { 13 background: #f0f2f5; 14 border-radius: 4px; 15 padding: 8px; 16 font-style: normal; 17 font-size: 15px; 18 color: #4d4452; 19 } 20} 21</style>

投稿2020/04/14 12:46

sola-msr

総合スコア876

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

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

kakedashidesu

2020/04/14 12:49

ん???どういうことでしょうか??? 他で使っているclass= detail_cantentにも影響するような
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問