私はバニラ・フォーラムをスタイリングしようとしています。このクラスを選択することはできません。<li class="Item Announcement"></li>
私はそれをスタイルすることができます。CSSでこのHTMLをどのようにターゲットにするのですか?
なぜそれが難しいのか分かりません。なぜこれはうまくいかないでしょうか?
.Item Announcement {
background-color: #FFF;
{
私はバニラ・フォーラムをスタイリングしようとしています。このクラスを選択することはできません。<li class="Item Announcement"></li>
私はそれをスタイルすることができます。CSSでこのHTMLをどのようにターゲットにするのですか?
なぜそれが難しいのか分かりません。なぜこれはうまくいかないでしょうか?
.Item Announcement {
background-color: #FFF;
{
試してみてください。
li.Item.Announcement {
background-color: #FFF;
}
リスト項目がそれに適用された2つのクラス(項目と発表)を持っていること。だから、CSSでそれをターゲットにするには、各クラスの前にピリオドをつけて、スペースを削除する必要があります。スペースをCSSセレクタに残すと、そのクラスを持つ子孫要素に適用されます。
クイックjsFiddle exampleです。
スペースでは、セレクタは1つではなく2つで、複数のクラスセレクタを使用して選択する必要があります。
.Item.Announcement {
background-color: #FFF;
}
あなたの問題は、クラス名にスペースがあることです。おそらく、それが単一のクラス名であることを意味していたので、class="ItemAnnouncement"
と.ItemAnnouncement { ...
に変更してください。すべて動作します。
あなたのクラス名にスペースがある場合、html要素に2つの異なるクラスが追加されます。.Item
& .Announcement
あなたのクラスitemAnnouncementに名前を付けることを考慮する必要があります。もしあなたがラクダのケースのファンでなければ、item-announcementです。
一方、あなたは別のクラスを持っていることを意図した場合、あなたがスペースあなたを置くので、もしあなたが、クラス名とidで
.Item {background-color:#fff;}
スペースは許可されていない最高のあなたに合ったもの、すなわちのスタイルをすることができます実際にはその項目の2つのクラス名を記述しています。
<li class="Item Announcement"></li>
は、実際には2つのクラスです。クラスには名前にスペースを入れることはできません。この要素は、li、.Item、.Announcement、またはこれら3つの組み合わせのいずれかで選択できます。
あなたはその正確な要素を選択していることを確認するために、あなたのコードは次のようになります。
li.Item.Announcement {
background-color: #fff;
}
を今あなたがそこに2クラス、アイテムとアナウンスがあります。 – Rooster
@ JohnB:より具体的には、 'li'要素には2つのクラスがあります。 CSSディレクティブはクラス 'Item'を持つ要素の中に' Announcement' _elements_(存在しない)を参照しています。だから、スタイルは次のようなものに適用されます: '