but I don't get it why they can detect edges and which one of them can find vertical edges and which one can find harizontal edges?
Basically, the triplet
1,0,-1 (and similarly
2,0,-2) is a discrete, 3-point derivative operator. It can be applied column- (left) or row-wise (right). Let us try first with a row: a flat one,
f = 0,0,0,0,0,0,0,0, a step-like
s = 0,0,0,1,1,1,1,1 and one hat-like
0 here denotes black, and
The results will be, on the $6$ central points for each:
The same reasoning applies to columns. The Sobel operators are composed of a second filter in the opposite direction:
1,2,1 that smoothes the data. So the global effect: it differentiates in one direction, smoothes in the other. THe resulting value will be high or low, positive or negative, depending on the type of contour in the image.
The (close-to-)zero values are features not detected by the derivative (hopefully non-edges). High amplitude values and their signs are hopefully the strength of the edge and the grading (positive: black-to-white, negative: white-to-black).