〈div class="example"〉
〈p〉There is a dog 〈/p〉
〈/div〉
ここでclassを、
.example
{color: white; }
で指定すると、P タグの中の文字が変わりますが、なぜ exampleに指定してるのに、P タグの文字は変わるのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/03 23:32
回答3件
0
投稿2020/05/03 23:41
総合スコア2982
0
なぜそういう仕様がつくられたのか、私の解釈を書いてみます。
以下の場合を考えてみてください。
HTML
1<div class="example"> 2 <div class="example-header"> 3 <h2>title title</h2> 4 </div> 5 <p>There is a dog</p> 6 <ul> 7 <li><a href="">aaaaaa</a></li> 8 </ul> 9 <p>aaaa aaa aaaaaaa <a href="">リンク文字</a> aaa aaaaaaa</p> 10</div>
「.example」の背景色が黒で、すべての文字を白にしたいと思ったとき、
もし「.example」に指定した文字色の指定が子要素には反映されなかったらどうなるでしょうか?
CSS
1.example 2.example div 3.example h2 4.example p 5.example li 6.example a { 7 color: white; 8}
↑このような形でcolor: white;
を指定しなければならなくなります。面倒じゃないですか?
上記のような面倒な記述を減らすため、
「.example」に文字色を指定すると子要素にも反映されるという仕様があるのだと考えると納得できるのでは、と思われます。
CSS
1.example { 2 color: white; 3}
技術的な仕様としては以下を見てみてください。
https://developer.mozilla.org/ja/docs/Web/CSS/inheritance
投稿2020/05/03 23:51
総合スコア4528
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
コメントでの指摘を受けて、回答を訂正します。
〈div class="example"〉と対応する〈/div〉の間の全てが、"example"というクラスなので、
.example {color: white; }
とすれば、〈div class="example"〉と対応する〈/div〉の間のコンテンツに適用されますが、その中に、<p>などのオブジェクトがあれば、そのオブジェクトに継承されます。だから、"There is a dog"は白くなります。
<p>に新たに、{color: red; }を指定すれば、上書きされて、"There is a dog"は赤くなります。 "~~は、当然、"<p>There is a dog</p>"に適用されます。~~投稿2020/05/03 23:40
編集2020/05/04 00:11総合スコア39
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/03 23:42
2020/05/03 23:47
2020/05/03 23:48
2020/05/03 23:58 編集
2020/05/03 23:56
2020/05/03 23:59
2020/05/03 23:59
2020/05/04 00:00
2020/05/04 00:01
2020/05/04 00:01
2020/05/04 00:03
2020/05/04 00:07
2020/05/04 00:14
2020/05/04 00:19
2020/05/04 00:23
2020/05/04 00:24
2020/05/04 00:27
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。