从字面上就很容一理解first-child是结构上的第一个孩子而first-of-type是相同类型的第一个
下面来举例子说明下
<div>
<h2></h2>
<p></p>//通过P:first-of-type可以得到这个元素
<p></P>
</div>
下面是first-child
<html>
<head>
<style>
li:first-child
{
background:yellow;
}
</style>
</head>
<body>
<ul>
<li>咖啡</li>//它属于父元素的第一个孩子,而且是li标签所以它的背景颜色变为黄色
<li>茶</li>
<li>可口可乐</li>
</ul>
<ol>
<p>fgdhfjh</p>
<li>咖啡</li>//它在结构上不是第一个所以它的背景颜色不会变为黄色
<li>茶</li>
<li>可口可乐</li>
</ol>
<p><b>注释:</b>对于 IE8 及更早版本的浏览器中的 :first-child,必须声明 <!DOCTYPE>。</p>
</body>
</html>