Текст в полупрозрачных блоках
делать полупрозрачным только фон/* 50% черного */
background-color: rgba(0, 0, 0, 0.5);
А если фон захочется посложнее, чем однородный цвет или простой градиент?
Предложу альтернативный способ. Подложить под блок его же :after элемент, и для него уже задать прозрачность.<div class="myblock"></div>.myblock {
 position: relative;
}

.myblock:after {
 content: '';
 position: absolute;
 top: 0; bottom: 0; right: 0; left: 0;
 background: red;
 opacity: 0.5;
}
Само собой разумеется, если нужен лишь простой полупрозрачный фон, то решение @Fesor оптимальнее.