Думаю, в ходе обучения CSS Вы уже поняли, что все элементы можно определить как родительские или дочерние и что элемент родитель может содержать в себе несколько дочерних элементов, ну например:
<div>- блок родитель <p></p> - первый дочерний элемент <p></p> - второй дочерний элемент </div>
Так вот псевдокласс first-child определят стиль первого дочернего элемента находящегося в родительском контейнере.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Псевдокласс first-child</title> <style type="text/css"> div { margin: 20px; padding: 30px; background-color: #c0e4ff; border: 2px solid #008000 } p { color: #555; background-color: #dcdcdc; border: 2px solid #555 } p:first-child { color: #f00; background-color: #c5ffa0; border: 2px solid #008000 } </style> </head> <body> <div> <p>первый дочерний параграф - он выделен псевдоклассом first-child</p> <p>второй дочерний параграф</p> <p>третий дочерний параграф</p> </div> <div> <p>и здесь первый дочерний параграф выделен хотя блок родитель уже другой</p> <p>второй дочерний параграф</p> </div> </body> </html>
Обратите внимание на тот факт, что если бы в блоке родителе перед дочерними параграфами стоял любой другой тег, заголовок <h1> к примеру, то псевдокласс first-child уже не действовал бы к первому параграфу.. так как хоть параграф то он и первый, но элемент в блоке родителе уже второй.
Применяют данный псевдокласс в тех случаях , если требуется задать разный стиль для первого и последующих элементов, например сделать "буквицу"- одну единственную в начале документа или обозначить первый абзац текста на всех страницах сайта , выделить первый пункт в списках...и т.д.