Alternatively, you could use mask-image to support all backgrounds (hopefully this will be supported in most modern browsers someday): http://jsfiddle.net/AKrUe/1/
Or just use 'transparent' instead of 'white'.
Really cool! I think it makes more sense semantically as an
than a div though: http://jsfiddle.net/ZTz7Q/903/
Also, when using this method, don't forget to include all the vendor prefixes as well. http://jsfiddle.net/xkba5/1/