You can do this with jQuery plugins.
The Cufon plugin may have it too, you should check that out.
It could also be done with the Raphael plugin or SVG and VML but a pure CSS cross-browser solution is hard to find.
Only for Chrome and Safari:
-webkit-mask-image: -webkit-gradient(linear, left top, left bottom,
from(rgba(0,0,0,1)), color-stop(50%, rgba(0,0,0,.5)), to(rgba(0,0,0,1)));
For the rest of the browsers you have to use some JavaScript.