А если фон захочется посложнее, чем однородный цвет или простой градиент?
Предложу альтернативный способ. Подложить под блок его же :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 оптимальнее.