2012-04-10 2 views
0

私はバニラ・フォーラムをスタイリングしようとしています。このクラスを選択することはできません。<li class="Item Announcement"></li>私はそれをスタイルすることができます。CSSでこのHTMLをどのようにターゲットにするのですか?

なぜそれが難しいのか分かりません。なぜこれはうまくいかないでしょうか?

.Item Announcement { 
background-color: #FFF; 
{ 
+2

を今あなたがそこに2クラス、アイテムとアナウンスがあります。 – Rooster

+0

@ JohnB:より具体的には、 'li'要素には2つのクラスがあります。 CSSディレクティブはクラス 'Item'を持つ要素の中に' Announcement' _elements_(存在しない)を参照しています。だから、スタイルは次のようなものに適用されます: '

  • ' – David

    答えて

    6

    試してみてください。

    li.Item.Announcement { 
        background-color: #FFF; 
    } 
    

    リスト項目がそれに適用された2つのクラス(項目と発表)を持っていること。だから、CSSでそれをターゲットにするには、各クラスの前にピリオドをつけて、スペースを削除する必要があります。スペースをCSSセレクタに残すと、そのクラスを持つ子孫要素に適用されます。

    クイックjsFiddle exampleです。

    1

    スペースでは、セレクタは1つではなく2つで、複数のクラスセレクタを使用して選択する必要があります。

    .Item.Announcement { 
        background-color: #FFF; 
    } 
    
    1

    あなたの問題は、クラス名にスペースがあることです。おそらく、それが単一のクラス名であることを意味していたので、class="ItemAnnouncement".ItemAnnouncement { ...に変更してください。すべて動作します。

    0

    あなたのクラス名にスペースがある場合、html要素に2つの異なるクラスが追加されます。.Item & .AnnouncementあなたのクラスitemAnnouncementに名前を付けることを考慮する必要があります。もしあなたがラクダのケースのファンでなければ、item-announcementです。

    一方、あなたは別のクラスを持っていることを意図した場合、あなたがスペースあなたを置くので、もしあなたが、クラス名とidで

    .Item {background-color:#fff;} 
    
    0

    スペースは許可されていない最高のあなたに合ったもの、すなわちのスタイルをすることができます実際にはその項目の2つのクラス名を記述しています。

    1

    <li class="Item Announcement"></li>は、実際には2つのクラスです。クラスには名前にスペースを入れることはできません。この要素は、li、.Item、.Announcement、またはこれら3つの組み合わせのいずれかで選択できます。

    あなたはその正確な要素を選択していることを確認するために、あなたのコードは次のようになります。

    li.Item.Announcement { 
        background-color: #fff; 
    } 
    
    関連する問題