Не совсем. : first-child в вашем случае означает «TR, который является ПЕРВЫМ РЕБЕНКОМ TBODY». это не означает «первый дочерний элемент TR» (TD).
Таким образом, вы применяете синий цвет к строке таблицы, а не первый тд, который является потомком tr.
если вы хотите только первый тд, то:
div#top .... tr td:first-child { background-color: blue; }