Проблема выбора первого ребенка в CSS - PullRequest
3 голосов
/ 05 апреля 2011
<style type="text/css">
p:first-child 
{
background:yellow;
}
</style>


 <i></i>
<p>I am a strong man. I am a strong man.</p>
<p>I am a strong man. I am a strong man.</p>
<p>I am a strong man. I am a strong man.</p>

почему, если я помещаю элемент перед строками "p", я не вижу первую строку желтой? должен ли p: first-child выбрать самый первый «p», а не только самый первый тег?

спасибо

1 Ответ

11 голосов
/ 05 апреля 2011

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

Если вы хотите фильтровать по типу, используйте псевдокласс CSS3 :first-of-type:

p:first-of-type
{
    background:yellow;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...