I like David's solution but I would modify it to convert it to a data frame since that keeps the factor instead of getting a matrix.
data.frame(type=df[, 1], mapply("/", df[, -1], div))
# type V1 V2 V3
#1 A 0.1 0.01 0.001
#2 B 0.1 0.01 0.001
#3 C 0.1 0.01 0.001
which is what I would like to get.