違いはなんですか? .some_class{}
そして *.some_class{}
.
それは、そのクラスが別のタグの内側にあるタグにのみ適用されるということですか、それともまったく違いがないということですか?
回答:
回答№1の場合は3違いはありません。次のように要素型を指定しないと div
または p
その後、あなたが持っているかどうか *
かどうかは関係ありません。たとえあなたがそれを除外したとしても、それはあなたがマッチしたいことを暗示しています どれか クラスを持つ限り、要素 some_class
。から 仕様:
ユニバーサルセレクターが*(つまり、 名前空間接頭辞なしの)は、単純なセレクタセレクタのシーケンスの唯一の構成要素ではないか、または直後に疑似要素が続く場合は、*を省略してユニバーサルセレクタの存在を暗示することができます。
例:
*[hreflang|=en]
そして[hreflang|=en]
等価であり、*.warning
そして.warning
等価であり、*#myid
そして#myid
同等です。
他の要素の内側にある要素に関してあなたが説明したことは、 *
スペースでクラスから分離されている。 * .some_class
。それはクラスと要素を一致させるでしょう some_class
それが他の要素の中にある場合に限ります(基本的にこれは決してルート要素と一致しないことを意味します)。
そして上の説明を *
暗示されているので、これはスペースを持つセレクターを以下と同等にするでしょう。 * *.some_class
。ここであなたはそれを見ることができます 二 ユニバーサルセレクタが使用されています。コンビネータ。 2番目のものは、クラスセレクタによって既に修飾されているため、偶然にオプションになっています(最初のものは、それ自体が存在するためオプションではありません)。
回答№2については4
違いはありません。 ここに
"*"と書かれたユニバーサルセレクタは、任意の要素型の名前と一致します。文書ツリーの任意の単一要素に一致します。
ユニバーサルセレクタが単純セレクタの唯一のコンポーネントではない場合は、 "*"を省略することができます。例えば:
*[lang=fr] and [lang=fr] are equivalent.
*.warning and .warning are equivalent.
*#myid and #myid are equivalent.
回答№3の場合は0
クラスがID(#id.class)を渡す前に、
置くことの間に違いはありませんアスタリスクかどうかは、アスタリスクはCSSがこのクラスの任意のIDに適用されることを意味するため、アステリスクなしでクラスを配置するのと同じです。
// This style will be applied to anybody that has the attribute class="my_class"
.my_class{
}
// This class will be applied to anybody to any id that also has the attribute class="my_class"
*.my_class{
}
それが役に立てば幸い!