Нечетное поведение с CSS: first-child: before в Chrome

Я вижу что-то довольно странное в Chrome 10 с : first-child: before .

С этим HTML

  • One
  • Two
  • Three
  • Four
  • Five
  • Siz

и этим CSS

ul {
    list-style-type: none
}

li:before {
    content: "* "
}

li:first-child:before {
    content: ""
}

Может ли кто-нибудь объяснить, почему

  • Four
  • отображается со звездочкой в ​​Chrome 10.0.648.204 в Win XP SP3? См. http://jsfiddle.net/MxtHm/

    Но если я изменю CSS на

    ul {
        list-style-type: none
    }
    
    li:before {
        content: "* "
    }
    
    li:first-child {
        background: none
    }
    
    li:first-child:before {
        content: ""
    }

  • Четыре
  • отобразит без звездочки. См. http://jsfiddle.net/SGRej/

    Safari 5.0.4 и Firefox 3.6.16 отображают оба примера одинаково. Я просмотрел и книгу Мейера, и спецификацию CSS в поисках объяснения, но безуспешно, и валидатор CSS не жалуется на CSS.

    Чрезвычайно странно то, что если я проверяю элемент в Chrome, он показывает, что li: first-child: before отменяет правило li: before .

    JSFiddle использует строгий DOCTYPE XHTML 1.0, но я также вижу это с HTML5 DOCTYPE.

    Спасибо.

    2011 -04-28 РЕДАКТИРОВАТЬ: Похоже, это было исправлено в Chrome 11.0.696.57 вместе с другими аналогичными проблемами, связанными с псевдоэлементами.

    5
    задан mpdonadio 28 April 2011 в 15:03
    поделиться