another solution is to put a solid background on the div, so that we don't see through anymore.

any reason to not use :after to generate that div btw ?