Both of them are selectors for the HTML used in the CSS to select specific children.
The :first-child: The :first-child selector is used to select those elements which are the first-child elements. For :first-child selector the <!DOCTYPE> must be declared for IE8 and earlier versions.
The :first-of-type: The :first-of-type Selector is used to targeting the first child of every element of it’s parent. if we want to style the first child of an element without giving a class, we can use it.
Difference between :first-child and :first-of-type selector:
|This selector only choose the define element if the the element is the first child of the parent. If the define element comes second position then this selector can not select that element.||This selector chose the define element if the element comes 2nd, 3rd or 4th any place but have to be the first of it’s type.|
|In the above example you can see inside the div tag the childs are p, h4, h4 and p. If you change 1st p tag into a another tag then :first-child slector can not select any child.||In the above example you can see inside the div tag the childs are p, h4, h4 and p. If you change 1st p tag into h4 tag then :first-of-child slector will select the fisrt child of that parent which is also be the first child of the define element.|