Difference between edges in Depth First Trees
You could find a nicely description in CLRS 3ed Chapter 22.3. I extracted the next description from there. There are just four types of edge in a graph.


Tree edges are edges in the depth-first forest $G_\pi$. Edge $(u,v)$ is a tree edge if $v$ was first discovered by exploring edge $(u,v)$.
Back Edges are those edges $(u,v)$ connecting a vertex $u$ to an ancestor $v$ in a depth-first tree. We consider self-loops, which may occur in directed graphs, to be back edges.
Forward Edges: are those nontree edges $(u,v)$ connecting a vertex $u$ to a descendant $v$ in a depth-first tree.
Cross edges are all other edges. They can go between vertices in the same depth-first tree, as long as one vertex is not an ancestor of the other, or the can go between vertices in different depth-first trees.


For that, because you're interested in depth-first forest ( graph contains all depth-first search trees) only two types of edges remain:


Tree Edges: edges with a first node without parents in the forest of depth first search trees $G_\pi$
Cross Edges: edges inside depth-first trees with the description above, and those edges connecting those dfs-trees.