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

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

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

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

CSS

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

Q&A

解決済

1回答

1080閲覧

@contentを使う意味について

nomura02

総合スコア133

Sass

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

CSS

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

0グッド

0クリップ

投稿2020/08/02 12:49

@content
について、まだ分かって使ってないので、確認したいです…

@contentの存在意義?

@contentが無いと、Sassが上手く機能してくれないというのは分かるのですが…
なんとなく、mixinで定義してるものを重複して呼んでいる様な気がして、存在意義が良く分からないんです。

SCSS

1$sp:700px; 2@mixin sp { 3 @media (max-width:($sp)){ 4 @content 5 } 6} 7 8.container{ 9 width: auto; 10 margin: 0 auto; 11 @include sp{ 12 width: 100%; 13 } 14} 15 16 17@mixinで、"sp"は、 18@media (max-width:$(sp)){ 19@content 20} 21}

だよっていうことを定義して、
@includeで、上記を呼び出してますよね。
これ、@contentが無かったら、
@includeで呼び出した@mediaの中身
width: 100%;
が、
反映されないことになってしまうということですか?
ということは、@contentは、@includeで呼び出されたもののに、何かかしら入りますっていう意味ですか?
でも@content消しても、エディタ上では、CSSにコンパイルされるんですよね。。
サスマイスターhttps://www.sassmeister.com/で確認して、ようやく

私なら、、、

SCSS

1$sp:700px; 2@mixin sp { 3 @media (max-width:($sp)){ 4 } 5}

これで、@includeで@media (max-width:($sp)){}呼び出せばいいんじゃないの?と思ってしまいます。
こちらで質問する時まで、その@media (max-width:($sp)){}の中に、@contentを入れるという発想がありませんでした。

@content

width: 100%;
のことと、
前回の質問で教えてもらったんですけども、
そもそもmixinでメディアクエリを呼び出して、そこに任意のコード(今回で言うとwidth: 100%;)を書くんだから、
@contentはいったいなんのためにあるんだ???
と疑問がぐるぐるぐる…

変な質問ですみません、よろしくお願いします。。

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

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

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

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

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

guest

回答1

0

ベストアンサー

scss

1$sp:700px; 2@mixin sp { 3 @media (max-width:($sp)){ 4 } 5} 6

これだと、「空のメディアクエリを作る」という意味になります。

投稿2020/08/02 12:56

maisumakun

総合スコア145208

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

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

nomura02

2020/08/02 13:05

早速のご回答、ありがとうございます!! そうなんです、それが良く分からないんです。 私は、カラのメディアクエリを作りたいわけです。 で、その中に、 いろいろ書いていきたいので、カラでいいわけなんです!!! @include sp{ } で、mixinで指定した、 @media (max-width:($sp)){ } がでてきて、その中にいろいろ書ければいいわけで… どうして @contentがわざわざ必要になるのかが知りたくて…
maisumakun

2020/08/02 13:18

中括弧のブロックが1個しかなければ「そこに入れる」と推測できるかもしれませんが、ブロックが複数ある場合、どちらに入れればいいか(あるいはどちらにも書くのか)判別がつかなくなります。
nomura02

2020/08/02 13:23

!!回答ありがとうございます! 核心に迫ってきている気がします!! すみません、初心者すぎて申し訳ないのですが、 ちなみに、それはどういう状態ですか??? 入れ子の時ということですか? 中括弧がある時点で、そこに何か書きたいから作ってるのであって、とうぜん@contentがなくても何かいれるに決まってるでしょと、人間側(私)は思ってしまいますよね。。 パソコン側には、どういう指示を出していることになっているんでしょうか? それと何も中身に書かないのにわざわざ中括弧を作るシチュエーションがわからないです…
maisumakun

2020/08/02 13:28

> 入れ子の時ということですか? 入れ子ではない、このような場合を考えていました。 .foo{ .bar{} .baz{} }
nomura02

2020/08/02 13:39

ええ…( ゚Д゚)びっくりです これ何ですか? どういう状態… 謎が謎を呼んでおります… これ入れ子じゃないんですか…?????? 親と思われるクラス名{ 別のクラス名{} さらにまた別のクラス名{} } しつこくってすみません… これどういう状況でしょうか…????
maisumakun

2020/08/02 13:43

CSSにコンパイルすると、 .foo .bar {} .foo .baz {} のようになります。
nomura02

2020/08/02 13:54

ああそうか、なるほど。 そうですよね、しかし、これで何を表現したいんでしょうか? .foo .bar {} .foo .baz {} 仮に、htmlが、 <div class=foo> <div class=bar><h1>あいうえお</h1><p>かきこけこ</p></div> <div class=baz><h1>あいうえお</h1><p>かきこけこ</p></div> </div> だとして… というかそもそもこんなhtmlにはならないですか?上記のCSSを用いるときは… カラってどんな時ですか? display:none でもなく、 カラ…? すみません。。。ここまで来たらどうしても分かりたいです…
maisumakun

2020/08/02 13:57

空にして何かの役に立つものではなく、あくまで例として挙げただけです。
maisumakun

2020/08/02 13:58

(上の例に中身を与えた場合、どちらの中括弧に入れればいいか、判別はつかないですよね?)
maisumakun

2020/08/02 14:00

あと、 .foo{ color: yellow; @content; } と、 .foo{ @content; color: yellow; } では意味が違ってきます。このような細かな制御を行うには、「どこに入れるか」をコードで明記できる必要があります。
nomura02

2020/08/02 14:08

しつこい中お付き合いいただきありがとうございます… そうですね、どっちの中括弧に入れればいいか、 どっちにも入れないのか、どっちにも入れるのか、判別はつかないです。 なんとなく自分なりに咀嚼出来てきました。。 パソコン側としては、どっちもカラにする場合もあるわけで、 であれば必然的にカラにしないという意思表示もこちらからしないといけないわけで、 中身をどういう優先順位にするかどうかも教えてあげなくちゃいけないってこと と解釈しました(もう哲学みたいになってすみません;;)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問