The following answer comes from Dinesh O. Shah; he is Charles A. Stokes Professor of Chemical Engineering and Anesthesiology at the University of Florida at Gainesville:

"When you see an oil film on the road on a rainy day, it gives rise to bands of beautiful colors for the following reason:

"Small amounts of oil are usually present on the road surface (for instance, lubricating oil from cars, trucks and bicycles). When it rains, drops of oil float on the layer of water that collects on the road because the density of oil is less than that of the water--the same reason that wood floats on water. Commercial oil formulations usually contain a surfactant, an additive that causes the oil drops to spread out into a thin film atop the water. That film is thickest in the center of the patch, or oil slick, and thinnest at the periphery.

"Light reflects upward both from the top of the oil film and from the underlying interface between the oil and the water; the path length (the distance from the reflection to your eye) is slightly different depending on whether the returned light comes from the top or from the bottom of the oil film. If the difference in path length is an integral multiple of the wavelength of the light, rays reflected from the two locations will reinforce each other, a process called constructive interference. If, however, the rays reach your eye out of step, they will cancel each other out due to destructive interference.

"Sunlight contains all the colors of the rainbow--the famous ROYGBIV (red, orange, yellow, green, blue, indigo, violet). Each color of light has a different wavelength. Hence, a given disparity in the path length will cause constructive interference of certain colors, whereas other colors will not be observed because of destructive interference. Because the oil film gradually thins from its center to its periphery, different bands of the oil slick produce different colors.