:first-child
не заботится о типе. Добавляя <i></i>
к вашему коду, i
становится первым дочерним элементом (при условии, что <style>
находится в пределах <head>
, а остальные - в <body>
, конечно). Ваш селектор хочет соответствовать p
, но, поскольку p
уже не первый ребенок, ваш стиль не может быть применен.
Если вы хотите фильтровать по типу, используйте псевдокласс CSS3 :first-of-type
:
p:first-of-type
{
background:yellow;
}