2012-04-10 3 views
0

Я пытаюсь создать форум Vanilla, и я просто не могу понять, как выбрать этот класс <li class="Item Announcement"></li>, чтобы я мог его стилизовать.Как настроить этот HTML-код в CSS?

Я не знаю, почему это так сложно. Почему это не сработает?

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

прямо сейчас у вас есть 2 классы там, Item и объявление. – Rooster

+0

@JohnB: В частности, элемент 'li' имеет два класса. Директива CSS ссылается на 'Announcement' _elements_ (которые не существуют) внутри любых элементов с классом' Item'. Таким образом, было бы (_should_, я думаю, что это не определено) применяет стиль к чему-то вроде этого: '

  • ' – David

    ответ

    6

    Try:

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

    Этот элемент списка имеет два класса, примененные к нему (пункт и сообщения). Поэтому, чтобы настроить таргетинг с помощью CSS, вам нужно префикс каждого класса с периодом, а затем удалить пробелы. Оставляя пробелы в селекторе CSS, он применил бы его к элементу потомка, у которого был класс.

    jsFiddle example.

    1

    Проблема в том, что с пробелами она больше не является одним селектором, а двумя, поэтому вам нужно выбрать несколько селекторов классов.

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

    Я думаю, ваша проблема в том, что ваше имя класса имеет пробел в нем. Вы, вероятно, предназначались для того, чтобы это было одно имя класса, поэтому измените его на class="ItemAnnouncement" и .ItemAnnouncement { ..., и все будет работать.

    0

    пространство, которое у вас есть в вашем имени класса, добавляет два разных класса в ваш элемент html, .Item & .Announcement. Вы должны подумать об именовании своего элемента itemAnnouncement, или если вы не поклонник верблюда, item-announce.

    Если с другой стороны, вы имели в вид, чтобы иметь различные классы, которые вы можете стиль, который подходит вам лучше всего, то есть

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

    пространство в именах классов и идентификаторах не разрешено, так что если вы поставите пространство вам на самом деле пишут 2 названия классов для этого элемента.

    1

    Имейте в виду, что <li class="Item Announcement"></li> на самом деле два класса. Классы не могут содержать пробелы в своих именах. Вы можете выбрать этот элемент либо с помощью li, .Item, .Announcement, либо из комбинации всех трех.

    Для того, чтобы убедиться, что вы выбираете, что точный элемент, код должен выглядеть примерно так:

    li.Item.Announcement { 
        background-color: #fff; 
    } 
    
    Смежные вопросы