http://jsbin.com/nupihuxige/1/edit?html,css,output
tutaj przykładowe rozwiązanie :)
Twój kod nie działa, ponieważ opacity 0.5 dajesz divowi w którym masz Twój tekst i on dziedziczy tę przeźroczystość. Moje rozwiązanie nie jest nadaniem przeźroczystości elementowi, a przysłonienie go półprzeźroczystym kolorem tła :)
ps na tej stronie którą dałeś za przykład rozwiązali to tak że tło jest osobnym divem z opacity, a tekst jest obok, a nie w divie :)