I have observed that when petrol or oil leaks, the light spectrum appear on it. What causes light to split into its constituent colours?
In fact the light is not split up like in a rainbow or a prism.
The colours appear due to thin film interefence - see e.g. http://en.wikipedia.org/wiki/Thin-film_interference
The thickness of the petrol or oil is similar to the wavelength of visible light, which is about 380 to 750 nm or 0.38 to 0.75 $\mu$m (- or about 500 atoms think).
Different colours of light have different wavelengths.
Depending on the exact thickness of the oil some colours don't reflect back due to destructive intereference and some do reflect back due to constrcutive interefence - thus some colours are reflected strongly and others are not reflected - so the oil or petrol appears coloured - as the thickness varies difference colours are reflected so the colour appears to change.
The interference is due to light being reflected from the top surface of the oil and the bottom surface - the two reflections come back with different 'phases' because they travel slightly different distances to get to your eye. - The difference in distance is related to the thickness of the oil or petrol film. - when the differences in distance are close to the wavelength of light there is interference between the two reflections. This is a simiplification, for the detail see http://en.wikipedia.org/wiki/Thin-film_interference .
In the end - the key point is that the thickness of the oil or petrol is similar to the wavelength of visible light. (and the top and bottom surfaces are relatively smooth and flat and parallel to each other ...)